[mips] Fix `loadImmediate` calls when load non-address values.
authorSimon Atanasyan <simon@atanasyan.com>
Sat, 12 Oct 2019 07:42:44 +0000 (07:42 +0000)
committerSimon Atanasyan <simon@atanasyan.com>
Sat, 12 Oct 2019 07:42:44 +0000 (07:42 +0000)
llvm-svn: 374640

llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/test/MC/Mips/macro-li.d.s

index 86f5018..5ce8694 100644 (file)
@@ -3324,7 +3324,7 @@ bool MipsAsmParser::expandLoadSingleImmToGPR(MCInst &Inst, SMLoc IDLoc,
 
   uint32_t ImmOp32 = covertDoubleImmToSingleImm(convertIntToDoubleImm(ImmOp64));
 
-  return loadImmediate(ImmOp32, FirstReg, Mips::NoRegister, true, true, IDLoc,
+  return loadImmediate(ImmOp32, FirstReg, Mips::NoRegister, true, false, IDLoc,
                        Out, STI);
 }
 
@@ -3397,15 +3397,15 @@ bool MipsAsmParser::expandLoadDoubleImmToGPR(MCInst &Inst, SMLoc IDLoc,
 
   if (Lo_32(ImmOp64) == 0) {
     if (isABI_N32() || isABI_N64()) {
-      if (loadImmediate(ImmOp64, FirstReg, Mips::NoRegister, false, true, IDLoc,
-                        Out, STI))
+      if (loadImmediate(ImmOp64, FirstReg, Mips::NoRegister, false, false,
+                        IDLoc, Out, STI))
         return true;
     } else {
-      if (loadImmediate(Hi_32(ImmOp64), FirstReg, Mips::NoRegister, true, true,
+      if (loadImmediate(Hi_32(ImmOp64), FirstReg, Mips::NoRegister, true, false,
                         IDLoc, Out, STI))
         return true;
 
-      if (loadImmediate(0, nextReg(FirstReg), Mips::NoRegister, true, true,
+      if (loadImmediate(0, nextReg(FirstReg), Mips::NoRegister, true, false,
                         IDLoc, Out, STI))
         return true;
     }
index 20cc88e..fae5b3d 100644 (file)
@@ -9,12 +9,12 @@
 li.d   $4, 0
 # O32:     addiu   $4, $zero, 0                # encoding: [0x00,0x00,0x04,0x24]
 # O32:     addiu   $5, $zero, 0                # encoding: [0x00,0x00,0x05,0x24]
-# N32-N64: daddiu  $4, $zero, 0                # encoding: [0x00,0x00,0x04,0x64]
+# N32-N64: addiu   $4, $zero, 0                # encoding: [0x00,0x00,0x04,0x24]
 
 li.d   $4, 0.0
 # O32:     addiu   $4, $zero, 0                # encoding: [0x00,0x00,0x04,0x24]
 # O32:     addiu   $5, $zero, 0                # encoding: [0x00,0x00,0x05,0x24]
-# N32-N64: daddiu  $4, $zero, 0                # encoding: [0x00,0x00,0x04,0x64]
+# N32-N64: addiu   $4, $zero, 0                # encoding: [0x00,0x00,0x04,0x24]
 
 li.d   $4, 1.12345
 # ALL:      .section  .rodata,"a",@progbits