MIPS/GAS: Sanitize `.option picX' pseudo-op
gas/ * config/tc-mips.c (s_option): Sanitize `.option picX' pseudo-op. * testsuite/gas/mips/option-pic-1.d: New test. * testsuite/gas/mips/option-pic-2.l: New list test. * testsuite/gas/mips/option-pic-1.s: New test source. * testsuite/gas/mips/option-pic-2.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests.
This commit is contained in:
parent
668c5ebc09
commit
41a1578ed1
7 changed files with 56 additions and 1 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
2016-04-09 Maciej W. Rozycki <macro@imgtec.com>
|
||||||
|
|
||||||
|
* config/tc-mips.c (s_option): Sanitize `.option picX'
|
||||||
|
pseudo-op.
|
||||||
|
* testsuite/gas/mips/option-pic-1.d: New test.
|
||||||
|
* testsuite/gas/mips/option-pic-2.l: New list test.
|
||||||
|
* testsuite/gas/mips/option-pic-1.s: New test source.
|
||||||
|
* testsuite/gas/mips/option-pic-2.s: New test source.
|
||||||
|
* testsuite/gas/mips/mips.exp: Run the new tests.
|
||||||
|
|
||||||
2016-04-09 Maciej W. Rozycki <macro@imgtec.com>
|
2016-04-09 Maciej W. Rozycki <macro@imgtec.com>
|
||||||
|
|
||||||
* config/tc-mips.c (s_option): Reject `.option picX' if VxWorks
|
* config/tc-mips.c (s_option): Reject `.option picX' if VxWorks
|
||||||
|
|
|
@ -15472,7 +15472,7 @@ s_option (int x ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
/* FIXME: What does this mean? */
|
/* FIXME: What does this mean? */
|
||||||
}
|
}
|
||||||
else if (strncmp (opt, "pic", 3) == 0)
|
else if (strncmp (opt, "pic", 3) == 0 && ISDIGIT (opt[3]) && opt[4] == '\0')
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
|
@ -1474,6 +1474,9 @@ if { [istarget mips*-*-vxworks*] } {
|
||||||
|
|
||||||
run_dump_test "li-d"
|
run_dump_test "li-d"
|
||||||
|
|
||||||
|
run_dump_test "option-pic-1"
|
||||||
|
run_list_test "option-pic-2" "" \
|
||||||
|
"MIPS invalid PIC option"
|
||||||
run_list_test "option-pic-vxworks-1" "-mvxworks-pic" \
|
run_list_test "option-pic-vxworks-1" "-mvxworks-pic" \
|
||||||
"MIPS invalid PIC option in VxWorks PIC"
|
"MIPS invalid PIC option in VxWorks PIC"
|
||||||
run_list_test "option-pic-vxworks-2" "-mvxworks-pic" \
|
run_list_test "option-pic-vxworks-2" "-mvxworks-pic" \
|
||||||
|
|
18
gas/testsuite/gas/mips/option-pic-1.d
Normal file
18
gas/testsuite/gas/mips/option-pic-1.d
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#objdump: -dr --prefix-addresses --show-raw-insn
|
||||||
|
#name: MIPS PIC option
|
||||||
|
#as: -32
|
||||||
|
|
||||||
|
.*: +file format .*mips.*
|
||||||
|
|
||||||
|
Disassembly of section \.text:
|
||||||
|
[0-9a-f]+ <[^>]*> 8f820000 lw v0,0\(gp\)
|
||||||
|
[ ]*[0-9a-f]+: R_MIPS_GOT16 bar
|
||||||
|
[0-9a-f]+ <[^>]*> 3c020000 lui v0,0x0
|
||||||
|
[ ]*[0-9a-f]+: R_MIPS_HI16 bar
|
||||||
|
[0-9a-f]+ <[^>]*> 24420000 addiu v0,v0,0
|
||||||
|
[ ]*[0-9a-f]+: R_MIPS_LO16 bar
|
||||||
|
[0-9a-f]+ <[^>]*> 8f820000 lw v0,0\(gp\)
|
||||||
|
[ ]*[0-9a-f]+: R_MIPS_GOT16 bar
|
||||||
|
[0-9a-f]+ <[^>]*> 03e00008 jr ra
|
||||||
|
[0-9a-f]+ <[^>]*> 00000000 nop
|
||||||
|
\.\.\.
|
16
gas/testsuite/gas/mips/option-pic-1.s
Normal file
16
gas/testsuite/gas/mips/option-pic-1.s
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
.abicalls
|
||||||
|
.text
|
||||||
|
.globl foo
|
||||||
|
.ent foo
|
||||||
|
foo:
|
||||||
|
la $2, bar
|
||||||
|
.option pic0 # Switch off!
|
||||||
|
la $2, bar
|
||||||
|
.option pic2 # Switch on!
|
||||||
|
la $2, bar
|
||||||
|
jr $ra
|
||||||
|
.end foo
|
||||||
|
|
||||||
|
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
|
||||||
|
.align 4, 0
|
||||||
|
.space 16
|
4
gas/testsuite/gas/mips/option-pic-2.l
Normal file
4
gas/testsuite/gas/mips/option-pic-2.l
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
.*: Assembler messages:
|
||||||
|
.*:2: Warning: unrecognized option "picfoo"
|
||||||
|
.*:3: Warning: unrecognized option "pic0foo"
|
||||||
|
.*:4: Error: junk at end of line, first unrecognized character is `f'
|
4
gas/testsuite/gas/mips/option-pic-2.s
Normal file
4
gas/testsuite/gas/mips/option-pic-2.s
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
.abicalls
|
||||||
|
.option picfoo
|
||||||
|
.option pic0foo
|
||||||
|
.option pic0 foo
|
Loading…
Reference in a new issue