Add support for the mips 'x' inline asm modifier.

Patch by Jack Carter.

llvm-svn: 157057
This commit is contained in:
Eric Christopher 2012-05-18 17:39:35 +00:00
parent d78d7b05ae
commit 9ca26cfb5f
2 changed files with 11 additions and 0 deletions

View File

@ -383,6 +383,11 @@ bool MipsAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
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;
}
}

View File

@ -11,5 +11,11 @@ entry:
;CHECK: #NO_APP
tail call i32 asm sideeffect "addi $0,$1,${2:X}", "=r,r,I"(i32 7, i32 -3) nounwind
; x with -3
;CHECK: #APP
;CHECK: addi ${{[0-9]+}},${{[0-9]+}},0xfffd
;CHECK: #NO_APP
tail call i32 asm sideeffect "addi $0,$1,${2:x}", "=r,r,I"(i32 7, i32 -3) nounwind
ret i32 0
}