mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-05 12:31:46 +00:00
Add support for the 'd' mips inline asm output modifier.
Patch by Jack Carter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157093 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8aa22019ca
commit
75f89b54b5
@ -376,18 +376,23 @@ bool MipsAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
|
||||
|
||||
const MachineOperand &MO = MI->getOperand(OpNum);
|
||||
switch (ExtraCode[0]) {
|
||||
default:
|
||||
return true; // Unknown modifier.
|
||||
case 'X': // hex const int
|
||||
if ((MO.getType()) != MachineOperand::MO_Immediate)
|
||||
return true;
|
||||
O << "0x" << StringRef(utohexstr(MO.getImm())).lower();
|
||||
return false;
|
||||
case 'x': // hex const int (low 16 bits)
|
||||
if ((MO.getType()) != MachineOperand::MO_Immediate)
|
||||
return true;
|
||||
O << "0x" << StringRef(utohexstr(MO.getImm() & 0xffff)).lower();
|
||||
return false;
|
||||
default:
|
||||
return true; // Unknown modifier.
|
||||
case 'X': // hex const int
|
||||
if ((MO.getType()) != MachineOperand::MO_Immediate)
|
||||
return true;
|
||||
O << "0x" << StringRef(utohexstr(MO.getImm())).lower();
|
||||
return false;
|
||||
case 'x': // hex const int (low 16 bits)
|
||||
if ((MO.getType()) != MachineOperand::MO_Immediate)
|
||||
return true;
|
||||
O << "0x" << StringRef(utohexstr(MO.getImm() & 0xffff)).lower();
|
||||
return false;
|
||||
case 'd': // decimal const int
|
||||
if ((MO.getType()) != MachineOperand::MO_Immediate)
|
||||
return true;
|
||||
O << MO.getImm();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,5 +17,11 @@ entry:
|
||||
;CHECK: #NO_APP
|
||||
tail call i32 asm sideeffect "addi $0,$1,${2:x}", "=r,r,I"(i32 7, i32 -3) nounwind
|
||||
|
||||
; d with -3
|
||||
;CHECK: #APP
|
||||
;CHECK: addi ${{[0-9]+}},${{[0-9]+}},-3
|
||||
;CHECK: #NO_APP
|
||||
tail call i32 asm sideeffect "addi $0,$1,${2:d}", "=r,r,I"(i32 7, i32 -3) nounwind
|
||||
|
||||
ret i32 0
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user