<div dir="ltr">Hi Joey,<div><br></div><div style>Can you elaborate on what "other" instructions use it?<br></div><div style><br></div><div style>cheers,</div><div style>-renato</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On 19 June 2013 15:04, Joey Gouly <span dir="ltr"><<a href="mailto:joey.gouly@arm.com" target="_blank">joey.gouly@arm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This essentially reverts r155000.<br>
The restriction on the coprocessor number does actually exist for this instruction, as some new instructions use this encoding.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D1008" target="_blank">http://llvm-reviews.chandlerc.com/D1008</a><br>
<br>
Files:<br>
lib/Target/ARM/ARMInstrInfo.td<br>
test/MC/ARM/basic-arm-instructions.s<br>
test/MC/Disassembler/ARM/arm-tests.txt<br>
test/MC/Disassembler/ARM/invalid-CDP2-arm.txt<br>
<br>
Index: lib/Target/ARM/ARMInstrInfo.td<br>
===================================================================<br>
--- lib/Target/ARM/ARMInstrInfo.td<br>
+++ lib/Target/ARM/ARMInstrInfo.td<br>
@@ -1007,11 +1007,6 @@<br>
let DecoderMethod = "DecodeCoprocessor";<br>
}<br>
<br>
-def pf_imm : Operand<i32> {<br>
- let PrintMethod = "printPImmediate";<br>
- let ParserMatchClass = CoprocNumAsmOperand;<br>
-}<br>
-<br>
def CoprocRegAsmOperand : AsmOperandClass {<br>
let Name = "CoprocReg";<br>
let ParserMethod = "parseCoprocRegOperand";<br>
@@ -4413,7 +4408,7 @@<br>
let Inst{23-20} = opc1;<br>
}<br>
<br>
-def CDP2 : ABXI<0b1110, (outs), (ins pf_imm:$cop, imm0_15:$opc1,<br>
+def CDP2 : ABXI<0b1110, (outs), (ins p_imm:$cop, imm0_15:$opc1,<br>
c_imm:$CRd, c_imm:$CRn, c_imm:$CRm, imm0_7:$opc2),<br>
NoItinerary, "cdp2\t$cop, $opc1, $CRd, $CRn, $CRm, $opc2",<br>
[(int_arm_cdp2 imm:$cop, imm:$opc1, imm:$CRd, imm:$CRn,<br>
Index: test/MC/ARM/basic-arm-instructions.s<br>
===================================================================<br>
--- test/MC/ARM/basic-arm-instructions.s<br>
+++ test/MC/ARM/basic-arm-instructions.s<br>
@@ -459,9 +459,11 @@<br>
@------------------------------------------------------------------------------<br>
cdp p7, #1, c1, c1, c1, #4<br>
cdp2 p7, #1, c1, c1, c1, #4<br>
+ cdp2 p10, #0, c6, c12, c0, #7<br>
<br>
@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee]<br>
@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]<br>
+@ CHECK: cdp2 p10, #0, c6, c12, c0, #7 @ encoding: [0xe0,0x6a,0x0c,0xfe]<br>
<br>
<br>
@------------------------------------------------------------------------------<br>
Index: test/MC/Disassembler/ARM/arm-tests.txt<br>
===================================================================<br>
--- test/MC/Disassembler/ARM/arm-tests.txt<br>
+++ test/MC/Disassembler/ARM/arm-tests.txt<br>
@@ -363,6 +363,3 @@<br>
# CHECK: ldmgt sp!, {r9}<br>
0x00 0x02 0xbd 0xc8<br>
<br>
-# CHECK: cdp2 p10, #0, c6, c12, c0, #7<br>
-0xe0 0x6a 0x0c 0xfe<br>
-<br>
Index: test/MC/Disassembler/ARM/invalid-CDP2-arm.txt<br>
===================================================================<br>
--- /dev/null<br>
+++ test/MC/Disassembler/ARM/invalid-CDP2-arm.txt<br>
@@ -0,0 +1,4 @@<br>
+# RUN: llvm-mc --disassemble %s -triple=arm 2>&1 | FileCheck %s<br>
+<br>
+# CHECK: invalid instruction encoding<br>
+0xe0 0x6a 0x0c 0xfe<br>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>