diff options
| author | Simon Atanasyan <simon@atanasyan.com> | 2019-10-12 07:42:44 +0000 |
|---|---|---|
| committer | Simon Atanasyan <simon@atanasyan.com> | 2019-10-12 07:42:44 +0000 |
| commit | 4a46af845f6753b33d7c943ae4cc1f945b5ea211 (patch) | |
| tree | 512ac255f95774c67bb1d4f5f964011ece2de006 /llvm | |
| parent | fe88be8c3af9523b887368e91fbc56968e06d8a5 (diff) | |
| download | bcm5719-llvm-4a46af845f6753b33d7c943ae4cc1f945b5ea211.tar.gz bcm5719-llvm-4a46af845f6753b33d7c943ae4cc1f945b5ea211.zip | |
[mips] Fix `loadImmediate` calls when load non-address values.
llvm-svn: 374640
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 10 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/macro-li.d.s | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 86f50185c2d..5ce86943ed3 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -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; } diff --git a/llvm/test/MC/Mips/macro-li.d.s b/llvm/test/MC/Mips/macro-li.d.s index 20cc88e8673..fae5b3d6ec7 100644 --- a/llvm/test/MC/Mips/macro-li.d.s +++ b/llvm/test/MC/Mips/macro-li.d.s @@ -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 |

