From 93d23fa16ca5c3b793d61c3d867b22fadc073c34 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Wed, 24 Jul 2013 14:12:40 +0000 Subject: bfd/ 2013-07-24 Tristan Gingold * coff-rs6000.c (xcoff_howto_table): Fix masks and pc_relative for R_RBR. Add numbers in comments. (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_PPC_B16. * coff64-rs6000.c: Likewise. gas/ 2013-07-24 Tristan Gingold * config/tc-ppc.c (md_apply_fix): Adjust BFD_RELOC_PPC_B16 on xcoff targets. gas/testsuite/ 2013-07-24 Tristan Gingold * gas/ppc/test2xcoff32.s, gas/ppc/test2xcoff32.d: New files * gas/ppc/ppc.exp: Add new test. * gas/ppc/xcoff-br16-1.s, gas/ppc/xcoff-br16-1.d, gas/ppc/xcoff-br16-2.s, gas/ppc/xcoff-br16-2.d: New files * gas/ppc/aix.exp: Add new tests. --- gas/testsuite/ChangeLog | 8 +++++++ gas/testsuite/gas/ppc/aix.exp | 2 ++ gas/testsuite/gas/ppc/ppc.exp | 1 + gas/testsuite/gas/ppc/test2xcoff32.d | 40 ++++++++++++++++++++++++++++++++++ gas/testsuite/gas/ppc/test2xcoff32.s | 42 ++++++++++++++++++++++++++++++++++++ gas/testsuite/gas/ppc/xcoff-br16-1.d | 20 +++++++++++++++++ gas/testsuite/gas/ppc/xcoff-br16-1.s | 4 ++++ gas/testsuite/gas/ppc/xcoff-br16-2.d | 20 +++++++++++++++++ gas/testsuite/gas/ppc/xcoff-br16-2.s | 3 +++ 9 files changed, 140 insertions(+) create mode 100644 gas/testsuite/gas/ppc/test2xcoff32.d create mode 100644 gas/testsuite/gas/ppc/test2xcoff32.s create mode 100644 gas/testsuite/gas/ppc/xcoff-br16-1.d create mode 100644 gas/testsuite/gas/ppc/xcoff-br16-1.s create mode 100644 gas/testsuite/gas/ppc/xcoff-br16-2.d create mode 100644 gas/testsuite/gas/ppc/xcoff-br16-2.s (limited to 'gas/testsuite') diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index a4240a2685..e8b2eb6dd8 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2013-07-24 Tristan Gingold + + * gas/ppc/test2xcoff32.s, gas/ppc/test2xcoff32.d: New files + * gas/ppc/ppc.exp: Add new test. + * gas/ppc/xcoff-br16-1.s, gas/ppc/xcoff-br16-1.d, + gas/ppc/xcoff-br16-2.s, gas/ppc/xcoff-br16-2.d: New files + * gas/ppc/aix.exp: Add new tests. + 2013-07-19 Yufeng Zhang * gas/aarch64/ilp32-basic.d (#as): Update to use -mabi=ilp32 diff --git a/gas/testsuite/gas/ppc/aix.exp b/gas/testsuite/gas/ppc/aix.exp index 6dcfc4e8ae..27898376c3 100644 --- a/gas/testsuite/gas/ppc/aix.exp +++ b/gas/testsuite/gas/ppc/aix.exp @@ -65,6 +65,8 @@ if [istarget powerpc-ibm-aix*] then { run_dump_test "textalign-xcoff-002" run_dump_test "xcoff-branch-1-32" run_dump_test "xcoff-branch-1-64" + run_dump_test "xcoff-br16-1" + run_dump_test "xcoff-br16-2" run_list_test "xcoff-ref-1" diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp index fec714cbf7..ba29261a7d 100644 --- a/gas/testsuite/gas/ppc/ppc.exp +++ b/gas/testsuite/gas/ppc/ppc.exp @@ -31,6 +31,7 @@ if { [istarget powerpc64*-*-*] || [istarget *-*-elf64*]} then { run_list_test "range64" "-a64" } elseif { [istarget powerpc*-*aix*] } then { run_dump_test "test1xcoff32" + run_dump_test "test2xcoff32" } elseif { [istarget powerpc*-*-*bsd*] \ || [istarget powerpc*-*-elf*] \ || [istarget powerpc*-*-eabi*] \ diff --git a/gas/testsuite/gas/ppc/test2xcoff32.d b/gas/testsuite/gas/ppc/test2xcoff32.d new file mode 100644 index 0000000000..125d34a198 --- /dev/null +++ b/gas/testsuite/gas/ppc/test2xcoff32.d @@ -0,0 +1,40 @@ +#objdump: -dr +#as: +#name: PowerPC Test 2, 32 bit XCOFF + +.*: +file format aixcoff-rs6000 + + +Disassembly of section .text: + +00000000 <.main>: + 0: 7c 08 02 a6 mflr r0 + 4: 90 01 00 08 st r0,8\(r1\) + 8: 93 c1 ff f8 st r30,-8\(r1\) + c: 93 e1 ff fc st r31,-4\(r1\) + 10: 94 21 ff c0 stu r1,-64\(r1\) + 14: 3b e0 00 00 lil r31,0 + 18: 83 c2 00 00 l r30,0\(r2\) + 1a: R_TOC LC\.\.0-0x70 + 1c: 7f c3 f3 78 mr r3,r30 + 20: 7f e4 fb 78 mr r4,r31 + 24: 4b ff ff dd bl 0 <.main> + 24: R_BR .printf + 28: 60 00 00 00 oril r0,r0,0 + 2c: 2f 9f 00 09 cmpi 7,r31,9 + 30: 3b ff 00 01 cal r31,1\(r31\) + 34: 40 9e ff e8 bne 7,1c <\.main\+0x1c> + 38: 38 60 00 00 lil r3,0 + 3c: 38 21 00 40 cal r1,64\(r1\) + 40: 80 01 00 08 l r0,8\(r1\) + 44: 7c 08 03 a6 mtlr r0 + 48: 83 c1 ff f8 l r30,-8\(r1\) + 4c: 83 e1 ff fc l r31,-4\(r1\) + 50: 4e 80 00 20 br + 54: 60 00 00 00 oril r0,r0,0 + 58: 60 00 00 00 oril r0,r0,0 + 5c: 60 00 00 00 oril r0,r0,0 + +00000060 <_t\.rw_>: + 60: 25 64 0a 00 dozi r11,r4,2560 + ... diff --git a/gas/testsuite/gas/ppc/test2xcoff32.s b/gas/testsuite/gas/ppc/test2xcoff32.s new file mode 100644 index 0000000000..7ac2bff1f6 --- /dev/null +++ b/gas/testsuite/gas/ppc/test2xcoff32.s @@ -0,0 +1,42 @@ + .csect .text[PR] + .extern .printf + .toc +LC..1: + .tc LC..0[TC],LC..0 + .csect .text[PR] + .align 2 + .globl main + .globl .main + .csect main[DS] +main: + .long .main, TOC[tc0], 0 + .csect .text[PR] +.main: + mflr 0 + stw 0,8(1) + stw 30,-8(1) + stw 31,-4(1) + stwu 1,-64(1) + li 31,0 + lwz 30,LC..1(2) +L..2: + mr 3,30 + mr 4,31 + bl .printf + nop + cmpwi 7,31,9 + addi 31,31,1 + bne 7,L..2 + li 3,0 + addi 1,1,64 + lwz 0,8(1) + mtlr 0 + lwz 30,-8(1) + lwz 31,-4(1) + blr + + .csect _t.rw_[RO],4 + .align 2 +LC..0: + .byte "%d" + .byte 10, 0 diff --git a/gas/testsuite/gas/ppc/xcoff-br16-1.d b/gas/testsuite/gas/ppc/xcoff-br16-1.d new file mode 100644 index 0000000000..5052279585 --- /dev/null +++ b/gas/testsuite/gas/ppc/xcoff-br16-1.d @@ -0,0 +1,20 @@ +#as: -a32 +#source: xcoff-br16-1.s +#objdump: -P relocs -dr +#name: XCOFF R_RBR/16 reloc test 1 + +.* +Relocations for \.text .* +vaddr sgn mod sz type symndx symbol +00000002 S 16 RBR [0-9] c +00000006 S 16 RBR [0-9] c + + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: 40 82 00 00 bne 0x0 + 2: R_RBR_16 c + 4: 40 82 ff fd bnel 0x0 + 6: R_RBR_16 c diff --git a/gas/testsuite/gas/ppc/xcoff-br16-1.s b/gas/testsuite/gas/ppc/xcoff-br16-1.s new file mode 100644 index 0000000000..f6b66e885b --- /dev/null +++ b/gas/testsuite/gas/ppc/xcoff-br16-1.s @@ -0,0 +1,4 @@ + .extern c + bne c + bnel c + diff --git a/gas/testsuite/gas/ppc/xcoff-br16-2.d b/gas/testsuite/gas/ppc/xcoff-br16-2.d new file mode 100644 index 0000000000..173ed06211 --- /dev/null +++ b/gas/testsuite/gas/ppc/xcoff-br16-2.d @@ -0,0 +1,20 @@ +#as: -a32 +#source: xcoff-br16-2.s +#objdump: -P relocs -dr +#name: XCOFF R_RBR/16 reloc test 2 + +.* +Relocations for \.text .* +vaddr sgn mod sz type symndx symbol +00000002 S 16 RBR [0-9] c +00000006 S 16 RBR [0-9] c + + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: 40 82 00 04 bne 0x4 + 2: R_RBR_16 c + 4: 40 82 00 01 bnel 0x4 + 6: R_RBR_16 c diff --git a/gas/testsuite/gas/ppc/xcoff-br16-2.s b/gas/testsuite/gas/ppc/xcoff-br16-2.s new file mode 100644 index 0000000000..41bbc489b2 --- /dev/null +++ b/gas/testsuite/gas/ppc/xcoff-br16-2.s @@ -0,0 +1,3 @@ + .extern c + bne c + 4 + bnel c + 4 -- cgit v1.2.1