diff options
author | Jim Grosbach <grosbach@apple.com> | 2011-07-13 19:24:09 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2011-07-13 19:24:09 +0000 |
commit | 619e0d6d95879a08ede97c171e1c8712554c7951 (patch) | |
tree | 77098b5d4fbbf6888ba5177e7520a632659b66fc | |
parent | 3fd6e755d0efa29eef06f9b07302daf92c391e5a (diff) |
Give the ARM BKPT instruction the right operand type.
The immediate is of limited range and the operand type should reflect that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135066 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.td | 9 | ||||
-rw-r--r-- | utils/TableGen/EDEmitter.cpp | 1 |
2 files changed, 5 insertions, 5 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td index 4760459e1e..10410a54e6 100644 --- a/lib/Target/ARM/ARMInstrInfo.td +++ b/lib/Target/ARM/ARMInstrInfo.td @@ -255,9 +255,8 @@ def lo16AllZero : PatLeaf<(i32 imm), [{ return (((uint32_t)N->getZExtValue()) & 0xFFFFUL) == 0; }], hi16>; -/// imm0_65535 predicate - True if the 32-bit immediate is in the range -/// [0.65535]. -def imm0_65535 : ImmLeaf<i32, [{ +/// imm0_65535 - An immediate is in the range [0.65535]. +def imm0_65535 : Operand<i32>, ImmLeaf<i32, [{ return Imm >= 0 && Imm < 65536; }]>; @@ -1174,8 +1173,8 @@ def SEV : AI<(outs), (ins), MiscFrm, NoItinerary, "sev", "", // The i32imm operand $val can be used by a debugger to store more information // about the breakpoint. -def BKPT : AI<(outs), (ins i32imm:$val), MiscFrm, NoItinerary, "bkpt", "\t$val", - []>, Requires<[IsARM]> { +def BKPT : AI<(outs), (ins imm0_65535:$val), MiscFrm, NoItinerary, + "bkpt", "\t$val", []>, Requires<[IsARM]> { bits<16> val; let Inst{3-0} = val{3-0}; let Inst{19-8} = val{15-4}; diff --git a/utils/TableGen/EDEmitter.cpp b/utils/TableGen/EDEmitter.cpp index 1a0cdee3f8..afe5007ecf 100644 --- a/utils/TableGen/EDEmitter.cpp +++ b/utils/TableGen/EDEmitter.cpp @@ -590,6 +590,7 @@ static int ARMFlagFromOpName(LiteralConstantEmitter *type, IMM("nModImm"); IMM("imm0_255"); IMM("imm0_4095"); + IMM("imm0_65535"); IMM("jt2block_operand"); IMM("t_imm_s4"); IMM("pclabel"); |