<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>