diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 1c9409d42d..c077fdb68c 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,18 @@ +2004-01-06 Alexandre Oliva + + 2003-11-05 Alexandre Oliva + * lib/gas-defs.exp (is_elf_format): Match frv-uclinux. + 2003-09-18 Alexandre Oliva + * gas/frv/fdpic.s, gas/frv/fdpic.d: Renamed from ucpic*. + 2003-09-15 Alexandre Oliva + * gas/frv/ucpic.s, gas/frv/ucpic.d: Use gr15 as PIC register. Use + gprel12 for rodata symbol and gotoff12 for sdata symbol. + 2003-08-08 Alexandre Oliva + * gas/frv/ucpic.d: Test gotoff and gotofffuncdesc. + 2003-08-04 Alexandre Oliva + * gas/frv/ucpic.d, gas/frv/ucpic.s: New. + * gas/frv/allinsns.exp: Run it. + 2004-01-02 Albert Bartoszko * gas/msp430/opcode.s: Add test for an 'add' instruction which diff --git a/gas/testsuite/gas/frv/allinsn.exp b/gas/testsuite/gas/frv/allinsn.exp index 30cdf67188..a9fc965441 100644 --- a/gas/testsuite/gas/frv/allinsn.exp +++ b/gas/testsuite/gas/frv/allinsn.exp @@ -2,5 +2,7 @@ if [istarget frv*-*-*] { run_dump_test "allinsn" + + run_dump_test "fdpic" run_dump_test "reloc1" } diff --git a/gas/testsuite/gas/frv/fdpic.d b/gas/testsuite/gas/frv/fdpic.d new file mode 100644 index 0000000000..a2e3425a15 --- /dev/null +++ b/gas/testsuite/gas/frv/fdpic.d @@ -0,0 +1,51 @@ +#as: +#objdump: -Dr +#name: frv fdpic + +.*: +file format .* + +Disassembly of section \.text: + +00000000 : + 0: a0 50 f0 00 subi gr15,0,gr16 + 0: R_FRV_GPREL12 bar + 4: 88 40 f0 00 addi gr15,0,gr4 + 4: R_FRV_GOT12 foo + 8: 8a c8 f0 00 ldi @\(gr15,0\),gr5 + 8: R_FRV_GOT12 foo + c: 8c f4 00 00 setlo lo\(0x0\),gr6 + c: R_FRV_GOTLO foo + 10: 8c f8 00 00 sethi hi\(0x0\),gr6 + 10: R_FRV_GOTHI foo + 14: 8e 40 f0 00 addi gr15,0,gr7 + 14: R_FRV_FUNCDESC_GOT12 foo + 18: 90 c8 f0 00 ldi @\(gr15,0\),gr8 + 18: R_FRV_FUNCDESC_GOT12 foo + 1c: 92 f4 00 00 setlo lo\(0x0\),gr9 + 1c: R_FRV_FUNCDESC_GOTLO foo + 20: 92 f8 00 00 sethi hi\(0x0\),gr9 + 20: R_FRV_FUNCDESC_GOTHI foo + 24: a0 40 f0 00 addi gr15,0,gr16 + 24: R_FRV_GOTOFF12 \.sdata + 28: 88 40 f0 00 addi gr15,0,gr4 + 28: R_FRV_GOTOFF12 foo + 2c: 8a c8 f0 00 ldi @\(gr15,0\),gr5 + 2c: R_FRV_GOTOFF12 foo + 30: 8c f4 00 00 setlo lo\(0x0\),gr6 + 30: R_FRV_GOTOFFLO foo + 34: 8c f8 00 00 sethi hi\(0x0\),gr6 + 34: R_FRV_GOTOFFHI foo + 38: 8e 40 f0 00 addi gr15,0,gr7 + 38: R_FRV_FUNCDESC_GOTOFF12 foo + 3c: 90 c8 f0 00 ldi @\(gr15,0\),gr8 + 3c: R_FRV_FUNCDESC_GOTOFF12 foo + 40: 92 f4 00 00 setlo lo\(0x0\),gr9 + 40: R_FRV_FUNCDESC_GOTOFFLO foo + 44: 92 f8 00 00 sethi hi\(0x0\),gr9 + 44: R_FRV_FUNCDESC_GOTOFFHI foo +Disassembly of section \.sdata: + +00000000 : + \.\.\. + 0: R_FRV_FUNCDESC foo + 4: R_FRV_32 foo diff --git a/gas/testsuite/gas/frv/fdpic.s b/gas/testsuite/gas/frv/fdpic.s new file mode 100644 index 0000000000..82b3ed20f7 --- /dev/null +++ b/gas/testsuite/gas/frv/fdpic.s @@ -0,0 +1,39 @@ + .text + .global foo +foo: + subi gr15, #gprel12(bar), gr16 + + addi gr15, #got12(foo), gr4 + ldi @(gr15, #got12(foo)), gr5 + + setlo #gotlo(foo), gr6 + sethi #gothi(foo), gr6 + + addi gr15, #gotfuncdesc12(foo), gr7 + ldi @(gr15, #gotfuncdesc12(foo)), gr8 + + setlo #gotfuncdesclo(foo), gr9 + sethi #gotfuncdeschi(foo), gr9 + + addi gr15, #gotoff12(baz), gr16 + + addi gr15, #gotoff12(foo), gr4 + ldi @(gr15, #gotoff12(foo)), gr5 + + setlo #gotofflo(foo), gr6 + sethi #gotoffhi(foo), gr6 + + addi gr15, #gotofffuncdesc12(foo), gr7 + ldi @(gr15, #gotofffuncdesc12(foo)), gr8 + + setlo #gotofffuncdesclo(foo), gr9 + sethi #gotofffuncdeschi(foo), gr9 + + .section .rodata +bar: + + .section .sdata,"aw",@progbits + .p2align 2 +baz: + .picptr funcdesc(foo) + .word foo diff --git a/gas/testsuite/lib/gas-defs.exp b/gas/testsuite/lib/gas-defs.exp index 8116934d89..fec2778948 100644 --- a/gas/testsuite/lib/gas-defs.exp +++ b/gas/testsuite/lib/gas-defs.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002 +# Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -193,6 +193,7 @@ proc is_elf_format {} { && ![istarget *-*-eabi*] \ && ![istarget hppa*64*-*-hpux*] \ && ![istarget *-*-linux*] \ + && ![istarget frv-*-uclinux*] \ && ![istarget *-*-irix5*] \ && ![istarget *-*-irix6*] \ && ![istarget *-*-netbsd*] \