1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test/MC/Mips
Daniel Sanders 878dadf925 [mips] Range check uimm16 and fix several bugs this revealed.
Summary:
The bugs were:
* teq and similar take 4-bit unsigned immediates on microMIPS.
* teqi and similar have side-effects like teq do.
* shll_s.w and shra_r.w take 5-bit unsigned immediates.
* The various DSP ext* instructions take a 5-bit immediate.
* repl.qh takes an 8-bit unsigned immediate.
* repl.ph takes a 10-bit unsigned immediate.
* rddsp/wrdsp take a 10-bit unsigned immediate.
* teqi and similar take signed 16-bit immediates (10-bit for microMIPS).
* Out-of-range immediate macros for or/xor take a simm32/simm64 depending
  on architecture. I'll fix the simm64 case properly when I reach simm32.

lui is a bit more lenient than GAS and accepts signed immediates in addition
to unsigned. This is because MipsMCExpr can produce signed values when
constant folding and it currently lacks a way of knowing it should fold to
an unsigned value.

Reviewers: vkalintiris

Subscribers: dsanders, llvm-commits

Differential Revision: http://reviews.llvm.org/D15446

llvm-svn: 259360
2016-02-01 15:13:31 +00:00
..
cnmips [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
dsp [mips] Range check uimm16 and fix several bugs this revealed. 2016-02-01 15:13:31 +00:00
dspr2 [mips][microMIPS][DSP] Implement PACKRL.PH, PICK.PH, PICK.QB, SHILO, SHILOV and WRDSP instructions 2015-12-18 08:59:37 +00:00
eva [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
micromips [mips][microMIPS] Implement DERET and DI instructions and check size operand for EXT and DEXT* instructions 2015-12-21 13:08:58 +00:00
micromips32r6 [mips] Range check uimm16 and fix several bugs this revealed. 2016-02-01 15:13:31 +00:00
micromips64r6 [mips] Range check uimm16 and fix several bugs this revealed. 2016-02-01 15:13:31 +00:00
micromips-dsp [mips][microMIPS][DSP] Implement PACKRL.PH, PICK.PH, PICK.QB, SHILO, SHILOV and WRDSP instructions 2015-12-18 08:59:37 +00:00
micromips-dspr2 [mips][microMIPS][DSP] Implement PACKRL.PH, PICK.PH, PICK.QB, SHILO, SHILOV and WRDSP instructions 2015-12-18 08:59:37 +00:00
mips1 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips2 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips3 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips4 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips5 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips32 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips32r2 [mips] Range check uimm16 and fix several bugs this revealed. 2016-02-01 15:13:31 +00:00
mips32r3 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips32r5 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips32r6 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips64 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips64r2 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips64r3 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips64r5 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
mips64r6 [mips] Never select JAL for calls to an absolute immediate address. 2016-01-11 15:57:46 +00:00
msa [mips][ias] Range check uimm8 operands 2015-12-08 14:42:10 +00:00
asciiz-directive-bad.s
asciiz-directive.s
branch-pseudos-bad.s [mips] Add support for branch-likely pseudo-instructions 2015-09-15 15:06:26 +00:00
branch-pseudos.s [mips] Add support for branch-likely pseudo-instructions 2015-09-15 15:06:26 +00:00
cfi-advance-loc.s
cfi.s
cpload-bad.s
cpload.s
cprestore-bad.s [mips] Add assembler support for the .cprestore directive. 2015-09-17 16:08:39 +00:00
cprestore-noreorder.s [mips] Add assembler support for the .cprestore directive. 2015-09-17 16:08:39 +00:00
cprestore-reorder.s [mips] Add assembler support for the .cprestore directive. 2015-09-17 16:08:39 +00:00
cprestore-warning-unused.s [mips] Add assembler support for the .cprestore directive. 2015-09-17 16:08:39 +00:00
cpsetup-bad.s
cpsetup.s [mips][ias] Implement .cpreturn directive. 2015-09-22 10:50:09 +00:00
directive-ent.s [mips] .ent and .end should also set the type and size of the symbol respectively. 2015-11-23 16:08:03 +00:00
do_switch1.s
do_switch2.s
do_switch3.s
eh-frame.s
elf_basic.s Use ELFOSABI_NONE instead of ELFOSABI_LINUX. 2015-09-24 20:57:24 +00:00
elf_eflags_abicalls.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_reginfo.s
elf_st_other.s
elf-bigendian.ll
elf-gprel-32-64.s
elf-N64.s
elf-relsym.s
elf-tls.s
expansion-jal-sym-pic.s [mips] Expand JAL instructions when PIC is enabled. 2015-08-18 16:18:09 +00:00
expr1.s
higher-highest-addressing.s
hilo-addressing.s
insn-directive.s
instalias-imm-expanding.s [mips] Handling of immediates bigger than 16 bits 2015-09-28 11:11:34 +00:00
lit.local.cfg
llvm-mc-fixup-endianness.s
macro-abs.s [mips] Absolute value macro expansion 2016-01-29 16:18:34 +00:00
macro-bcc-imm-bad.s [mips][ias] Implement macro expansion when bcc has an immediate where a register belongs. 2015-10-12 14:24:05 +00:00
macro-bcc-imm.s [mips][ias] Implement macro expansion when bcc has an immediate where a register belongs. 2015-10-12 14:24:05 +00:00
macro-ddiv-bad.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-ddiv.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-ddivu-bad.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-ddivu.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-div-bad.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-div.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-divu-bad.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-divu.s [mips] Added support for the div, divu, ddiv and ddivu macros which use traps and breaks in the integrated assembler. 2015-09-03 12:31:22 +00:00
macro-dla-32bit.s [mips] Allowed dla instructions on 32-bit architectures. 2016-01-21 15:11:01 +00:00
macro-dla.s [mips] Changed the way symbols are handled in dla and la instructions to allow simple expressions. 2015-10-05 13:19:29 +00:00
macro-dli.s
macro-la-bad.s
macro-la.s [mips] Changed the way symbols are handled in dla and la instructions to allow simple expressions. 2015-10-05 13:19:29 +00:00
macro-li-bad.s
macro-li.s
micromips-16-bit-instructions.s
micromips-alias.s
micromips-alu-instructions.s
micromips-bad-branches.s
micromips-branch-fixup.s
micromips-branch-instructions.s
micromips-control-instructions.s [mips][microMIPS] Implement PAUSE, RDHWR, RDPGPR, SDBBP, SSNOP, SYNC, SYNCI and WAIT instructions 2015-10-28 11:04:29 +00:00
micromips-diagnostic-fixup.s [Assembler] Make fatal assembler errors non-fatal 2015-11-17 10:00:43 +00:00
micromips-el-fixup-data.s
micromips-expansions.s
micromips-fpu-instructions.s
micromips-func-addr.s
micromips-invalid.s [mips][microMIPS][DSP] Implement PACKRL.PH, PICK.PH, PICK.QB, SHILO, SHILOV and WRDSP instructions 2015-12-18 08:59:37 +00:00
micromips-jump26.s
micromips-jump-instructions.s
micromips-label-test-sections.s
micromips-label-test.s
micromips-loadstore-instructions.s [mips][microMIPS] Implement PREFX, LHUE, LBE, LBUE, LHE, LWE, SBE, SHE and SWE instructions 2015-09-16 09:14:35 +00:00
micromips-loadstore-unaligned.s
micromips-movcond-instructions.s
micromips-multiply-instructions.s
micromips-pc16-fixup.s [Assembler] Make fatal assembler errors non-fatal 2015-11-17 10:00:43 +00:00
micromips-relocations.s
micromips-shift-instructions.s
micromips-tailr.s
micromips-trap-instructions.s
mips64-alu-instructions.s [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
mips64-expansions.s
mips64-instructions.s
mips64-register-names-n32-n64.s
mips64-register-names-o32.s
mips64eb-fixups.s
mips64extins.ll
mips64shift.ll
mips_abi_flags_xx_set.s
mips_abi_flags_xx.s
mips_directives_bad.s
mips_directives.s
mips_gprel16.s
mips-abi-bad.s
mips-alu-instructions.s
mips-bad-branches.s
mips-control-instructions.s
mips-cop0-reginfo.s
mips-coprocessor-encodings.s
mips-data-directives.s
mips-diagnostic-fixup.s [Assembler] Make fatal assembler errors non-fatal 2015-11-17 10:00:43 +00:00
mips-expansions-bad.s [mips][ias] Implement ulh macro. 2015-10-15 14:52:58 +00:00
mips-expansions.s [mips][ias] Implement ulh macro. 2015-10-15 14:52:58 +00:00
mips-fpu-instructions.s
mips-hwr-register-names.s
mips-jump-delay-slots.s
mips-jump-instructions.s
mips-memory-instructions.s
mips-noat.s
mips-pc16-fixup.s [Assembler] Make fatal assembler errors non-fatal 2015-11-17 10:00:43 +00:00
mips-pdr-bad.s
mips-pdr.s Relax a few more overspecified tests. 2015-11-03 19:38:19 +00:00
mips-reginfo-fp32.s
mips-reginfo-fp64.s
mips-register-names-invalid.s
mips-register-names-o32.s
module-directive-bad.s
module-hardfloat.s
module-softfloat.s
multi-64bit-func.ll
nabi-regs.s
nacl-mask.s
nooddspreg-cmdarg.s
nooddspreg-error.s
nooddspreg.s
octeon-instructions.s
oddspreg.s
pr11877.s
r-mips-got-disp.s
reloc-directive-bad.s Implement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32. 2015-11-12 13:33:00 +00:00
reloc-directive-negative.s [MC, COFF] Add .reloc support for WinCOFF 2016-01-19 23:05:27 +00:00
reloc-directive.s Implement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32. 2015-11-12 13:33:00 +00:00
relocation.s
rotations32-bad.s [mips] Add tests for ROL and ROR macros expansion 2015-11-19 15:04:31 +00:00
rotations32.s [mips] Add tests for ROL and ROR macros expansion 2015-11-19 15:04:31 +00:00
rotations64.s [mips] Add tests for ROL and ROR macros expansion 2015-11-19 15:04:31 +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
set-nomacro.s [mips][ias] Implement ulh macro. 2015-10-15 14:52:58 +00:00
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
sext_64_32.ll
sort-relocation-table.s
sym-expr.s
sym-offset.ll
target-soft-float.s
unaligned-nops.s
update-module-level-options.s
xgot.s