[PATCH] ARMAsmParser permitted p10 and p11 as operands for	coprocessor instructions, resulting in ambiguous encodings
    Artyom Skrobov 
    Artyom.Skrobov at arm.com
       
    Thu Nov  7 10:25:31 PST 2013
    
    
  
Hello,
CP10/11 are reserved for FP/NEON operations, and are invalid as operands for
the generic coprocessor instructions.
They are correctly treated as invalid operands when decoding the coprocessor
instructions, but the assembler permits them nevertheless, leading to
multiple MCInsts sharing the same encoding:
$ llvm-mc -triple armv7 -show-encoding
mcr p10, #0, r0, c0, c0, #0
	.text
	mcr	p10, #0, r0, c0, c0, #0 @ encoding: [0x10,0x0a,0x00,0xee]
$ llvm-mc -triple armv7 -show-encoding -disassemble
[0x10,0x0a,0x00,0xee]
	.text
	vmov	s0, r0                  @ encoding: [0x10,0x0a,0x00,0xee]
Our patch fixes ARMAsmParser to disallow p10 and p11 as coprocessor
operands. The patch also updates the tests that tried to assemble these
invalid coprocessor instructions.
OK to commit?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cp10_11_asm.patch
Type: application/octet-stream
Size: 9766 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131107/530b35ce/attachment.obj>
    
    
More information about the llvm-commits
mailing list