mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Give the ARM BKPT instruction the right operand type.
The immediate is of limited range and the operand type should reflect that. llvm-svn: 135066
This commit is contained in:
parent
13c2a2dac3
commit
ab030d8a81
@ -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};
|
||||
|
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user