mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-04 17:56:53 +00:00
[mips] Make symbols an acceptable branch target when expanding compare-to-immediate-and-branch macros.
Reviewers: vkalintiris Subscribers: llvm-commits, vkalintiris, dim, seanbruno, dsanders Differential Revision: http://reviews.llvm.org/D15369 llvm-svn: 262213
This commit is contained in:
parent
db0ff7d08a
commit
79a09c97b9
@ -2559,7 +2559,8 @@ bool MipsAsmParser::expandBranchImm(MCInst &Inst, SMLoc IDLoc,
|
||||
assert(ImmOp.isImm() && "expected immediate operand kind");
|
||||
|
||||
const MCOperand &MemOffsetOp = Inst.getOperand(2);
|
||||
assert(MemOffsetOp.isImm() && "expected immediate operand kind");
|
||||
assert((MemOffsetOp.isImm() || MemOffsetOp.isExpr()) &&
|
||||
"expected immediate or expression operand");
|
||||
|
||||
unsigned OpCode = 0;
|
||||
switch(Inst.getOpcode()) {
|
||||
|
@ -129,6 +129,12 @@
|
||||
beq $2, 0x10000, 1332
|
||||
# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
|
||||
# CHECK-LE: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
|
||||
# CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00]
|
||||
|
||||
beq $2, 65538, foo
|
||||
# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
|
||||
# CHECK-LE: ori $1, $1, 2 # encoding: [0x02,0x00,0x21,0x34]
|
||||
# CHECK-LE: beq $2, $1, foo # encoding: [A,A,0x41,0x10]
|
||||
# CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00]
|
||||
|
||||
# Test ULH with immediate operand.
|
||||
|
@ -84,6 +84,17 @@
|
||||
# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
|
||||
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
|
||||
|
||||
# Test one with a symbol in the third operand.
|
||||
sym:
|
||||
bne $2, 0x100010001, sym
|
||||
# CHECK: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24]
|
||||
# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
|
||||
# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
|
||||
# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
|
||||
# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
|
||||
# CHECK: bne $2, $1, sym # encoding: [A,A,0x41,0x14]
|
||||
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
|
||||
|
||||
# Test ulhu with 64-bit immediate addresses.
|
||||
ulhu $8, 0x100010001
|
||||
# CHECK: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24]
|
||||
|
Loading…
Reference in New Issue
Block a user