diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-10-08 20:43:22 +0000 | 
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-10-08 20:43:22 +0000 | 
| commit | 222b86cd54e732cf1b9ec66fe103c54211b6e44a (patch) | |
| tree | b25d9fa0e247014a21e4ff88a3e474ffb25d0f79 /llvm | |
| parent | e1969dcd110261be9cd09d28a993d2dc5feadb9f (diff) | |
| download | bcm5719-llvm-222b86cd54e732cf1b9ec66fe103c54211b6e44a.tar.gz bcm5719-llvm-222b86cd54e732cf1b9ec66fe103c54211b6e44a.zip  | |
Use lower16 / upper16 imm modifiers to asmprint 32-bit imms splitted via movt/movw pair.
llvm-svn: 83572
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp | 7 | ||||
| -rw-r--r-- | llvm/test/CodeGen/ARM/t2-imm.ll | 4 | 
2 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp index bdaae222203..1679e12be0e 100644 --- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp @@ -329,13 +329,14 @@ void ARMAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,    }    case MachineOperand::MO_Immediate: {      int64_t Imm = MO.getImm(); +    O << '#';      if (Modifier) {        if (strcmp(Modifier, "lo16") == 0) -        Imm = Imm & 0xffffLL; +        O << ":lower16:";        else if (strcmp(Modifier, "hi16") == 0) -        Imm = (Imm & 0xffff0000LL) >> 16; +        O << ":upper16:";      } -    O << '#' << Imm; +    O << Imm;      break;    }    case MachineOperand::MO_MachineBasicBlock: diff --git a/llvm/test/CodeGen/ARM/t2-imm.ll b/llvm/test/CodeGen/ARM/t2-imm.ll index 8b619bfef3e..848a4dfed05 100644 --- a/llvm/test/CodeGen/ARM/t2-imm.ll +++ b/llvm/test/CodeGen/ARM/t2-imm.ll @@ -2,8 +2,8 @@  define i32 @f6(i32 %a) {  ; CHECK:f6 -; CHECK: movw r0, #1123 -; CHECK: movt r0, #1000 +; CHECK: movw r0, #:lower16:65537123 +; CHECK: movt r0, #:upper16:65537123      %tmp = add i32 0, 65537123      ret i32 %tmp  }  | 

