diff options
Diffstat (limited to 'gas/testsuite/gas/i386')
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-gprel.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-gprel.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-inval-gprel.l | 34 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-inval-gprel.s | 8 |
5 files changed, 58 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 67a7a13b259..427a758b35a 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -868,6 +868,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-gotpcrel-no-relax" run_dump_test "x86-64-addend" + + run_dump_test "x86-64-gprel" + run_list_test "x86-64-inval-gprel" "-al" } set ASFLAGS "$old_ASFLAGS" diff --git a/gas/testsuite/gas/i386/x86-64-gprel.d b/gas/testsuite/gas/i386/x86-64-gprel.d new file mode 100644 index 00000000000..f70624ab42e --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-gprel.d @@ -0,0 +1,10 @@ +#objdump: -drw +#name: x86-64 gprel + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: + +[a-f0-9]+: 65 8b 04 25 00 00 00 00 mov %gs:0x0,%eax 4: R_X86_64_GPREL foo +#pass diff --git a/gas/testsuite/gas/i386/x86-64-gprel.s b/gas/testsuite/gas/i386/x86-64-gprel.s new file mode 100644 index 00000000000..96b3ce90444 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-gprel.s @@ -0,0 +1,3 @@ + .text +_start: + movl %gs:foo@GPREL, %eax diff --git a/gas/testsuite/gas/i386/x86-64-inval-gprel.l b/gas/testsuite/gas/i386/x86-64-inval-gprel.l new file mode 100644 index 00000000000..b6683b036d1 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-inval-gprel.l @@ -0,0 +1,34 @@ +.*: Assembler messages: +.*:3: Error: invalid GP relocation +.*:3: Error: non-pc-relative relocation for pc-relative field +.*:4: Error: invalid GP relocation +.*:5: Error: invalid GP relocation +.*:6: Error: invalid GP relocation +.*:6: Error: non-pc-relative relocation for pc-relative field +.*:7: Error: invalid GP relocation +.*:8: Error: invalid GP relocation +GAS LISTING .* + + +[ ]*1[ ]+\.text +[ ]*2[ ]+_start: +[ ]*3[ ]+\?\?\?\? 648B0500 movl %fs:foo@GPREL\(%rip\), %eax +\*\*\*\* Error: invalid GP relocation +\*\*\*\* Error: non-pc-relative relocation for pc-relative field +[ ]*3[ ]+000000 +[ ]*4[ ]+\?\?\?\? 648B8000 movl %fs:foo@GPREL\(%rax\), %eax +\*\*\*\* Error: invalid GP relocation +[ ]*4[ ]+000000 +[ ]*5[ ]+\?\?\?\? 8B844800 movl %ds:foo@GPREL\(%rax, %rcx, 2\), %eax +\*\*\*\* Error: invalid GP relocation +[ ]*5[ ]+000000 +[ ]*6[ ]+\?\?\?\? 8B050000 movl foo@GPREL\(%rip\), %eax +\*\*\*\* Error: invalid GP relocation +\*\*\*\* Error: non-pc-relative relocation for pc-relative field +[ ]*6[ ]+0000 +[ ]*7[ ]+\?\?\?\? 8B800000 movl foo@GPREL\(%rax\), %eax +\*\*\*\* Error: invalid GP relocation +[ ]*7[ ]+0000 +[ ]*8[ ]+\?\?\?\? 8B042500 movl foo@GPREL, %eax +\*\*\*\* Error: invalid GP relocation +[ ]*8[ ]+000000 diff --git a/gas/testsuite/gas/i386/x86-64-inval-gprel.s b/gas/testsuite/gas/i386/x86-64-inval-gprel.s new file mode 100644 index 00000000000..8507926860d --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-inval-gprel.s @@ -0,0 +1,8 @@ + .text +_start: + movl %fs:foo@GPREL(%rip), %eax + movl %fs:foo@GPREL(%rax), %eax + movl %ds:foo@GPREL(%rax, %rcx, 2), %eax + movl foo@GPREL(%rip), %eax + movl foo@GPREL(%rax), %eax + movl foo@GPREL, %eax |