Skip to content

Commit

Permalink
This reverts r155000.
Browse files Browse the repository at this point in the history
The cdp2 instruction should have the same restrictions as cdp on the
co-processor registers.

VFP instructions on v8/AArch32 share the same encoding space as cdp2.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184445 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
jgouly committed Jun 20, 2013
1 parent d69d9f2 commit 4cbbbf4
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 10 deletions.
7 changes: 1 addition & 6 deletions lib/Target/ARM/ARMInstrInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -1007,11 +1007,6 @@ def p_imm : Operand<i32> {
let DecoderMethod = "DecodeCoprocessor";
}

def pf_imm : Operand<i32> {
let PrintMethod = "printPImmediate";
let ParserMatchClass = CoprocNumAsmOperand;
}

def CoprocRegAsmOperand : AsmOperandClass {
let Name = "CoprocReg";
let ParserMethod = "parseCoprocRegOperand";
Expand Down Expand Up @@ -4447,7 +4442,7 @@ def CDP : ABI<0b1110, (outs), (ins p_imm:$cop, imm0_15:$opc1,
let Inst{23-20} = opc1;
}

def CDP2 : ABXI<0b1110, (outs), (ins pf_imm:$cop, imm0_15:$opc1,
def CDP2 : ABXI<0b1110, (outs), (ins p_imm:$cop, imm0_15:$opc1,
c_imm:$CRd, c_imm:$CRn, c_imm:$CRm, imm0_7:$opc2),
NoItinerary, "cdp2\t$cop, $opc1, $CRd, $CRn, $CRm, $opc2",
[(int_arm_cdp2 imm:$cop, imm:$opc1, imm:$CRd, imm:$CRn,
Expand Down
2 changes: 2 additions & 0 deletions test/MC/ARM/basic-arm-instructions.s
Original file line number Diff line number Diff line change
Expand Up @@ -459,9 +459,11 @@ Lforward:
@------------------------------------------------------------------------------
cdp p7, #1, c1, c1, c1, #4
cdp2 p7, #1, c1, c1, c1, #4
cdp2 p10, #0, c6, c12, c0, #7

@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee]
@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]
@ CHECK: cdp2 p10, #0, c6, c12, c0, #7 @ encoding: [0xe0,0x6a,0x0c,0xfe]


@------------------------------------------------------------------------------
Expand Down
4 changes: 0 additions & 4 deletions test/MC/Disassembler/ARM/arm-tests.txt
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,3 @@

# CHECK: ldmgt sp!, {r9}
0x00 0x02 0xbd 0xc8

# CHECK: cdp2 p10, #0, c6, c12, c0, #7
0xe0 0x6a 0x0c 0xfe

4 changes: 4 additions & 0 deletions test/MC/Disassembler/ARM/invalid-CDP2-arm.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# RUN: llvm-mc --disassemble %s -triple=arm 2>&1 | FileCheck %s

# CHECK: invalid instruction encoding
0xe0 0x6a 0x0c 0xfe

0 comments on commit 4cbbbf4

Please sign in to comment.