1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/test/MC/Mips
Simon Atanasyan 697287cd2f [mips] Fix expanding lw/sw $reg1, symbol($reg2) instruction
When a "base" in the `lw/sw $reg1, symbol($reg2)` instruction is
a register and generated code is position independent, backend
does not add the "base" value to the symbol address.
```
lw     $reg1, %got(symbol)($gp)
lw/sw  $reg1, 0($reg1)
```

This patch fixes the bug and adds the missed `addu` instruction by
passing `BaseReg` into the `loadAndAddSymbolAddress` routine and handles
the case when the `BaseReg` is the zero register to escape redundant
`move reg, reg` instruction:
```
lw     $reg1, %got(symbol)($gp)
addu   $reg1, $reg1, $reg2
lw/sw  $reg1, 0($reg1)
```

Differential Revision: https://reviews.llvm.org/D66894

llvm-svn: 370353
2019-08-29 13:19:38 +00:00
..
cnmips [mips] Correct the predicates of the load/store (double)word for coprocessor 3. 2018-04-12 14:41:38 +00:00
crc [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
dsp
dspr2
eva [mips] Show an error if register number is out of range 2018-04-24 16:14:00 +00:00
ginv [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
micromips [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
micromips32r6 [mips] Support sigrie instruction 2018-11-06 14:37:24 +00:00
micromips-dsp
micromips-dspr2
micromips-dspr3
mips1 [Mips] Add s.d instruction alias for Mips1 2019-06-12 17:52:05 +00:00
mips2 [mips] Add (dis)assembler tests for beqzl and bnezl instructions. NFC 2019-07-27 08:13:27 +00:00
mips3 [mips] Add missing instructions 2018-08-29 11:35:03 +00:00
mips4 [mips] Add missing instructions 2018-08-29 11:35:03 +00:00
mips5 [mips] Correct predicates for loads, bit manipulation instructions and some pseudos 2018-06-20 19:59:58 +00:00
mips16 [mips] Guard 'nop' properly and add mips16's nop instruction 2018-06-01 10:46:00 +00:00
mips32 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips32r2 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips32r3 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips32r5 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips32r6 [mips] Mark the lwupc instruction as MIPS64 R6 only 2019-06-19 22:08:06 +00:00
mips64 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips64r2 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips64r3 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips64r5 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips64r6 [mips] Support sigrie instruction 2018-11-06 14:37:24 +00:00
msa [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mt [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
virt [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
addend.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
asciiz-directive-bad.s
asciiz-directive.s
bopt-directive.s
branch-pseudos-bad.s
branch-pseudos.s [mips] Print BEQZL and BNEZL pseudo instructions 2019-07-15 21:46:38 +00:00
cfi-advance-loc.s [mips] LLVM and GAS now use same instructions for CFA Definition. NFCI 2019-05-15 12:05:27 +00:00
cfi-encoding.s [mips] LLVM and GAS now use same instructions for CFA Definition. NFCI 2019-05-15 12:05:27 +00:00
cfi.s
cpload-bad.s
cpload.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
cplocal-bad.s [mips] Implement .cplocal directive 2019-07-17 08:11:31 +00:00
cplocal.s [mips] Implement .cplocal directive 2019-07-17 08:11:31 +00:00
cprestore-bad.s
cprestore-noreorder-noat.s [mips] Fix test typo in rL348914 2018-12-15 08:44:47 +00:00
cprestore-noreorder.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
cprestore-reorder.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
cprestore-warning-unused.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
cpsetup-bad.s
cpsetup.s [llvm-objdump] - Implement -z/--disassemble-zeroes. 2019-01-10 14:55:26 +00:00
directive-ent.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
do_switch1.s
do_switch2.s
do_switch3.s
double-expand.s
eh-frame.s [mips] LLVM and GAS now use same instructions for CFA Definition. NFCI 2019-05-15 12:05:27 +00:00
elf_basic.s
elf_eflags_abicalls.s
elf_eflags_micromips2.s
elf_eflags_micromips.s
elf_eflags_mips16.s
elf_eflags_nan2008.s
elf_eflags_nanlegacy.s
elf_eflags_noreorder.s
elf_eflags_pic0.s
elf_eflags_pic2.s
elf_eflags.s
elf_header.s
elf_reginfo.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
elf_st_other.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
elf-bigendian.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
elf-debug-section.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
elf-gprel-32-64.s
elf-N32.s [mips] Fix MIPS N32 ABI triples support 2018-09-17 21:21:57 +00:00
elf-N64.s
elf-relsym.s Revert "Reland [ELF] Loose a condition for relocation with a symbol" 2019-07-22 17:48:53 +00:00
elf-tls.s
end-directive.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
expansion-j-sym-pic.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
expansion-jal-sym-pic.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
expr1.s
got-rel-expr.s
hex-immediates.s
higher-highest-addressing.s
hilo-addressing.s
init-order-bug.ll
insn-directive.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
instalias-imm-expanding.s [mips] Guard some macro expansions properly 2018-04-19 09:45:04 +00:00
instr-analysis.s
invalid-instructions-spellcheck.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
j-macro-insn.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
lit.local.cfg [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
llvm-mc-fixup-endianness.s
macro-abs.s
macro-aliases-invalid-wrong-error.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
macro-aliases.s
macro-bcc-imm-bad.s
macro-bcc-imm.s [mips] Print BEQZL and BNEZL pseudo instructions 2019-07-15 21:46:38 +00:00
macro-ddiv-bad.s
macro-ddiv.s [mips] Addition of the [d]rem and [d]remu instructions 2018-07-09 13:06:44 +00:00
macro-ddivu-bad.s
macro-ddivu.s
macro-div-bad.s
macro-div.s
macro-divu-bad.s
macro-divu.s
macro-dla-32bit.s
macro-dla-bad.s
macro-dla-pic.s
macro-dla.s
macro-dli.s
macro-drem.s [mips] Addition of the [d]rem and [d]remu instructions 2018-07-09 13:06:44 +00:00
macro-dremu.s [mips] Addition of the [d]rem and [d]remu instructions 2018-07-09 13:06:44 +00:00
macro-la-bad.s
macro-la-pic.s [mips] Do not include offset into %got expression for global symbols 2019-08-23 13:36:14 +00:00
macro-la.s
macro-ld-sd.s [mips] Map SW instruction to its microMIPS R6 variant 2019-03-13 13:09:30 +00:00
macro-li-bad.s
macro-li.d.s
macro-li.s
macro-li.s.s
macro-rem.s [mips] Addition of the [d]rem and [d]remu instructions 2018-07-09 13:06:44 +00:00
macro-remu.s [mips] Addition of the [d]rem and [d]remu instructions 2018-07-09 13:06:44 +00:00
macro-seq.s
macro-sge64.s [mips] Implement sge/sgeu pseudo instructions 2019-07-09 12:55:55 +00:00
macro-sge.s [mips] Implement sge/sgeu pseudo instructions 2019-07-09 12:55:55 +00:00
macro-sgt64.s [mips] Implement sgt/sgtu pseudo instructions with immediate operand 2019-07-09 12:55:42 +00:00
macro-sgt.s [mips] Implement sgt/sgtu pseudo instructions with immediate operand 2019-07-09 12:55:42 +00:00
memory-offsets.s
micromips32r6-eva.s
micromips64-unsupported.s [mips] Mark microMIPS64 as being unsupported. 2018-06-19 16:05:44 +00:00
micromips64r6-unsupported.s
micromips-16-bit-instructions.s [mips] Correct the predicates for a number of instructions. 2018-05-29 09:56:19 +00:00
micromips-alias.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
micromips-alu-instructions.s
micromips-ase-directive.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
micromips-bad-branches.s
micromips-branch-fixup.s [mips][micrompis] Emit 16bit NOPs by default 2019-01-09 15:58:02 +00:00
micromips-branch-instructions.s [mips][micrompis] Emit 16bit NOPs by default 2019-01-09 15:58:02 +00:00
micromips-control-instructions.s [mips] Correct the definitions of some control instructions 2018-04-26 16:06:34 +00:00
micromips-diagnostic-fixup.s
micromips-el-fixup-data.s [mips][micrompis] Emit 16bit NOPs by default 2019-01-09 15:58:02 +00:00
micromips-eva.s
micromips-expansions.s [mips] Accept 32-bit offsets for lh and lhu commands 2018-05-10 16:01:18 +00:00
micromips-fpu64-instructions.s [mips] Add missing test case from r332227 2018-05-14 13:18:51 +00:00
micromips-fpu-instructions.s [mips] Add disassembly support for comparison instructions 2018-05-15 11:18:24 +00:00
micromips-func-addr.s
micromips-invalid.s [mips] Show an error if register number is out of range 2018-04-24 16:14:00 +00:00
micromips-jump26.s
micromips-jump-instructions.s [mips][micrompis] Emit 16bit NOPs by default 2019-01-09 15:58:02 +00:00
micromips-label-test-sections.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
micromips-label-test.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
micromips-loadstore-instructions.s [mips] Mark various memory instructions as being in microMIPS (NFC) 2018-05-08 10:16:21 +00:00
micromips-loadstore-unaligned.s
micromips-movcond-instructions.s [mips] Mark select instructions correctly 2018-05-15 16:05:04 +00:00
micromips-multiply-instructions.s
micromips-neg-offset.s [mips] Guard all short instructions correctly. 2018-05-31 12:47:01 +00:00
micromips-pc16-fixup.s
micromips-relocations.s
micromips-shift-instructions.s
micromips-tailr.s [mips][micrompis] Emit 16bit NOPs by default 2019-01-09 15:58:02 +00:00
micromips-trap-instructions.s
mips64-alu-instructions.s
mips64-expansions.s [mips] Fix expanding lw/sw $reg1, symbol($reg2) instruction 2019-08-29 13:19:38 +00:00
mips64-instalias-imm-expanding.s
mips64-instructions.s
mips64-register-names-n32-n64.s
mips64-register-names-o32.s
mips64eb-fixups.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips64extins.s
mips64shift.ll
mips_abi_flags_xx_set.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips_abi_flags_xx.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips_directives_bad.s [mips] Stop parsing a .set assignment if the first argument is not an identifier 2018-05-29 09:51:22 +00:00
mips_directives.s [mips] Process numeric register name in the .set assignment directive 2018-05-29 15:58:06 +00:00
mips_gprel16.s
mips-abi-bad.s
mips-alu-instructions.s
mips-bad-branches.s
mips-control-instructions.s [mips] Correct the definitions of some control instructions 2018-04-26 16:06:34 +00:00
mips-cop0-reginfo.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips-coprocessor-encodings.s
mips-data-directives.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips-diagnostic-fixup.s
mips-expansions-bad.s
mips-expansions.s [mips] Fix expanding lw/sw $reg1, symbol($reg2) instruction 2019-08-29 13:19:38 +00:00
mips-fpu-instructions.s
mips-hwr-register-names.s
mips-jump-delay-slots.s [mips] Print BEQZL and BNEZL pseudo instructions 2019-07-15 21:46:38 +00:00
mips-jump-instructions.s
mips-memory-instructions.s
mips-noat.s
mips-pc16-fixup.s
mips-pdr-bad.s
mips-pdr.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips-rdata.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips-reginfo-fp32.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips-reginfo-fp64.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mips-register-names-invalid.s [mips] Show an error if register number is out of range 2018-04-24 16:14:00 +00:00
mips-register-names-o32.s
module-directive-bad.s
module-hardfloat.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
module-softfloat.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
mul-macro-variants.s
multi-64bit-func.ll
nabi-regs.s
nacl-mask.s [llvm-objdump] - Implement -z/--disassemble-zeroes. 2019-01-10 14:55:26 +00:00
nooddspreg-cmdarg.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
nooddspreg-error.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
nooddspreg.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
octeon-instructions.s
oddspreg.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
pr11877.s
ptr-size.s [mips] Set pointer size to 4 bytes for N32 ABI 2018-10-09 11:29:45 +00:00
r-mips-got-disp.s
reloc-directive-bad-obj.s [MC] Support labels as offsets in .reloc directive 2018-11-21 16:28:39 +00:00
reloc-directive-bad.s [MC] Support labels as offsets in .reloc directive 2018-11-21 16:28:39 +00:00
reloc-directive-label-offset.s Reland test/MC/Mips/reloc-directive-label-offset.s 2018-11-22 18:18:58 +00:00
reloc-directive.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
relocation-n64.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
relocation-xfail.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
relocation.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
rotations32-bad.s
rotations32.s
rotations64.s
section-size.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
set-arch.s
set-at-directive-explicit-at.s
set-at-directive.s
set-at-noat-bad-syntax.s
set-defined-symbol.s
set-mips0-directive.s
set-mips16-directive.s
set-mips-directives-bad.s
set-mips-directives.s
set-nodsp.s
set-nomacro-micromips.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
set-nomacro.s
set-oddspreg-nooddspreg-error.s
set-oddspreg-nooddspreg.s
set-push-pop-directives-bad.s
set-push-pop-directives.s
set-softfloat-hardfloat-bad.s
set-softfloat-hardfloat.s
set-sym-recursive.s [mips] Fix crash on recursive using of .set 2019-03-19 15:15:35 +00:00
sext_64_32.ll
sort-relocation-table.s
sym-expr.s
sym-offset.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
sym-sc.s [Mips] Instruction sc now accepts symbol as an argument 2019-08-07 12:21:26 +00:00
target-soft-float.s
tls-symbols.s [llvm-nm][llvm-readelf] Avoid single-dash -long-option in tests 2019-04-27 16:12:14 +00:00
unaligned-nops.s
unsupported-relocation.s [mips] Show an error on attempt to use 64-bit PC-relative relocation 2018-12-29 10:10:02 +00:00
update-module-level-options.s [mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC 2018-12-12 07:03:04 +00:00
user-macro-argument-separation.s
xgot.s Revert "Reland [ELF] Loose a condition for relocation with a symbol" 2019-07-22 17:48:53 +00:00