[PATCH] Basic gas tests for VAX ELF
Jason R Thorpe
thorpej@wasabisystems.com
Fri Sep 27 19:53:00 GMT 2002
This adds some basic relocation tests for VAX ELF.
Committed to trunk.
* gas/vax/elf-rel.[ds]: New test.
* gas/vax/quad.exp: Move contents to...
* gas/vax/vax.exp: ...here. New file.
--
-- Jason R. Thorpe <thorpej@wasabisystems.com>
-------------- next part --------------
Index: gas/vax/elf-rel.d
===================================================================
RCS file: gas/vax/elf-rel.d
diff -N gas/vax/elf-rel.d
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- gas/vax/elf-rel.d 27 Sep 2002 23:27:16 -0000
***************
*** 0 ****
--- 1,41 ----
+ #objdump: -sr
+ #name: VAX ELF relocations
+
+ # Test VAX ELF relocations
+
+ .*: file format elf32-vax
+
+ RELOCATION RECORDS FOR \[\.text\]:
+ OFFSET [ ]+ TYPE VALUE
+ 00000015 R_VAX_PLT32 text_vax_plt32
+ 00000028 R_VAX_GOT32 text_vax_got32
+ 0000003b R_VAX_GOT32 text_vax_got32\+0x00000020
+ 00000005 R_VAX_PC8 text_vax_pc8
+ 00000009 R_VAX_PC16 text_vax_pc16
+ 0000000e R_VAX_PC32 text_vax_pc32
+ 0000001b R_VAX_PC8 text_vax_pc8
+ 0000001e R_VAX_PC16 text_vax_pc16
+ 00000022 R_VAX_PC32 text_vax_pc32
+ 0000002e R_VAX_PC8 text_vax_pc8\+0x00000008
+ 00000031 R_VAX_PC16 text_vax_pc16\+0x00000010
+ 00000035 R_VAX_PC32 text_vax_pc32\+0x00000020
+
+
+ RELOCATION RECORDS FOR \[\.data\]:
+ OFFSET [ ]+ TYPE VALUE
+ 00000000 R_VAX_8 data_vax_8
+ 00000001 R_VAX_16 data_vax_16
+ 00000003 R_VAX_32 data_vax_32
+ 00000007 R_VAX_8 data_vax_8\+0x00000008
+ 00000008 R_VAX_16 data_vax_16\+0x00000010
+ 0000000a R_VAX_32 data_vax_32\+0x00000020
+
+
+ Contents of section \.text:
+ 0000 0000fb00 affafb00 cff5fffb 00efeeff .*
+ 0010 fffffb00 ef000000 00d5afe4 d5cfe0ff .*
+ 0020 d5efdaff ffffd5ef 00000000 d5afd9d5 .*
+ 0030 cfddffd5 efe7ffff ffd5ef00 00000004 .*
+ Contents of section \.data:
+ 0000 00000000 00000000 00000000 0000 .*
+ #pass
Index: gas/vax/elf-rel.s
===================================================================
RCS file: gas/vax/elf-rel.s
diff -N gas/vax/elf-rel.s
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- gas/vax/elf-rel.s 27 Sep 2002 23:27:16 -0000
***************
*** 0 ****
--- 1,30 ----
+ .data
+
+ .byte data_vax_8
+ .word data_vax_16
+ .long data_vax_32
+
+ .byte data_vax_8+8
+ .word data_vax_16+16
+ .long data_vax_32+32
+
+ .text
+ .globl x
+ x:
+ .word 0
+
+ calls $0, b`text_vax_pc8
+ calls $0, w`text_vax_pc16
+ calls $0, l`text_vax_pc32
+ calls $0, text_vax_plt32
+
+ tstl b`text_vax_pc8
+ tstl w`text_vax_pc16
+ tstl l`text_vax_pc32
+ tstl text_vax_got32
+
+ tstl b`text_vax_pc8+8
+ tstl w`text_vax_pc16+16
+ tstl l`text_vax_pc32+32
+ tstl text_vax_got32+32
+ ret
Index: gas/vax/quad.exp
===================================================================
RCS file: gas/vax/quad.exp
diff -N gas/vax/quad.exp
*** gas/vax/quad.exp 26 Aug 2002 11:06:32 -0000 1.3
--- /dev/null 1 Jan 1970 00:00:00 -0000
***************
*** 1,27 ****
- proc do_quad {} {
- set testname "quad.s: quadword immediate values"
- set x1 0
- set x2 0
- set x3 0
- set file "quad.s"
- if [istarget vax-*-*elf*] {
- set file "quad_elf.s"
- }
- gas_start $file "-al"
- while 1 {
- expect {
- -re "^ +2\[ \t\]+0000+ 7D8F7856\[ \t\]+movq\[^\n\]*\n" { set x1 1 }
- -re "^ +2\[ \t\]+3412DDCC\[^\n\]*\n" { set x2 1 }
- -re "^ +2\[ \t\]+BBAA50\[ \t\]*\r\n" { set x3 1 }
- -re "\[^\n\]*\n" { }
- timeout { perror "timeout\n"; break }
- eof { break }
- }
- }
- gas_finish
- if [all_ones $x1 $x2 $x3] then { pass $testname } else { fail $testname }
- }
-
- if [istarget vax-*-*] then {
- do_quad
- }
--- 0 ----
Index: gas/vax/vax.exp
===================================================================
RCS file: gas/vax/vax.exp
diff -N gas/vax/vax.exp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- gas/vax/vax.exp 27 Sep 2002 23:27:16 -0000
***************
*** 0 ****
--- 1,35 ----
+ #
+ # Some generic VAX tests
+ #
+
+ proc do_quad {} {
+ set testname "quad.s: quadword immediate values"
+ set x1 0
+ set x2 0
+ set x3 0
+ set file "quad.s"
+ if [istarget vax-*-*elf*] {
+ set file "quad_elf.s"
+ }
+ gas_start $file "-al"
+ while 1 {
+ expect {
+ -re "^ +2\[ \t\]+0000+ 7D8F7856\[ \t\]+movq\[^\n\]*\n" { set x1 1 }
+ -re "^ +2\[ \t\]+3412DDCC\[^\n\]*\n" { set x2 1 }
+ -re "^ +2\[ \t\]+BBAA50\[ \t\]*\r\n" { set x3 1 }
+ -re "\[^\n\]*\n" { }
+ timeout { perror "timeout\n"; break }
+ eof { break }
+ }
+ }
+ gas_finish
+ if [all_ones $x1 $x2 $x3] then { pass $testname } else { fail $testname }
+ }
+
+ if [istarget vax-*-* ] then {
+ do_quad
+
+ if [istarget vax-*-*elf*] {
+ run_dump_test "elf-rel"
+ }
+ }
More information about the Binutils
mailing list