From: Chao-ying Fu Date: Wed, 13 Jan 2010 22:34:28 +0000 (+0000) Subject: 2010-01-13 Chao-ying Fu X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1063d8cf7189bed74dfce489b731978b3f85015b;p=binutils-gdb.git 2010-01-13 Chao-ying Fu * ld-mips-elf/jr-to-b-1.d, ld-mips-elf/jr-to-b-2.d: New tests. * ld-mips-elf/jr-to-b-1.s, ld-mips-elf/jr-to-b-2.s: Source. * ld-mips-elf/mips-elf.exp: Run new tests. --- diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 7fda06e7590..414df4e15e4 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-01-13 Chao-ying Fu + + * ld-mips-elf/jr-to-b-1.d, ld-mips-elf/jr-to-b-2.d: New tests. + * ld-mips-elf/jr-to-b-1.s, ld-mips-elf/jr-to-b-2.s: Source. + * ld-mips-elf/mips-elf.exp: Run new tests. + 2010-01-13 Daniel Jacobowitz * ld-arm/arm-elf.exp (armelftests): Assemble Cortex-A8 tests with diff --git a/ld/testsuite/ld-mips-elf/jr-to-b-1.d b/ld/testsuite/ld-mips-elf/jr-to-b-1.d new file mode 100644 index 00000000000..c78684736cf --- /dev/null +++ b/ld/testsuite/ld-mips-elf/jr-to-b-1.d @@ -0,0 +1,25 @@ +#name: jr to b conversion +#source: jr-to-b-1.s +#as: -32 -mips1 -EB +#ld: -shared -melf32btsmip +#objdump: -d + +.*: file format .* + + +Disassembly of section \.text: + +.* : +.*: 03e00008 jr ra +.*: 24020001 li v0,1 + +.* : +.*: 3c1c.... lui gp,.* +.*: 279c.... addiu gp,gp,.* +.*: 0399e021 addu gp,gp,t9 +.*: 8f998018 lw t9,.*\(gp\) +.*: 00000000 nop +.*: 2739.... addiu t9,t9,.* +.*: 1000fff7 b .* +.*: 00000000 nop +#pass diff --git a/ld/testsuite/ld-mips-elf/jr-to-b-1.s b/ld/testsuite/ld-mips-elf/jr-to-b-1.s new file mode 100644 index 00000000000..8f070059998 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/jr-to-b-1.s @@ -0,0 +1,42 @@ + .abicalls + .text + .align 2 + .set nomips16 + .ent s + .type s, @function +s: + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + j $31 + li $2,1 # 0x1 + + .set macro + .set reorder + .end s + .size s, .-s + .align 2 + .globl t + .set nomips16 + .ent t + .type t, @function +t: + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .cpload $25 + .set nomacro + lw $25,%got(s)($28) + nop + addiu $25,$25,%lo(s) + .reloc 1f,R_MIPS_JALR,s +1: jr $25 + nop + + .set macro + .set reorder + .end t + .size t, .-t diff --git a/ld/testsuite/ld-mips-elf/jr-to-b-2.d b/ld/testsuite/ld-mips-elf/jr-to-b-2.d new file mode 100644 index 00000000000..4b6399fc5d2 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/jr-to-b-2.d @@ -0,0 +1,25 @@ +#name: jr not to b conversion +#source: jr-to-b-2.s +#as: -32 -mips1 -EB +#ld: -shared -melf32btsmip +#objdump: -d + +.*: file format .* + + +Disassembly of section \.text: + +.* : +.*: e820 jr ra +.*: 6a01 li v0,1 + +.* : +.*: 3c1c.... lui gp,.* +.*: 279c.... addiu gp,gp,.* +.*: 0399e021 addu gp,gp,t9 +.*: 8f99.... lw t9,.*\(gp\) +.*: 00000000 nop +.*: 2739.... addiu t9,t9,.* +.*: 03200008 jr t9 +.*: 00000000 nop +#pass diff --git a/ld/testsuite/ld-mips-elf/jr-to-b-2.s b/ld/testsuite/ld-mips-elf/jr-to-b-2.s new file mode 100644 index 00000000000..ac883c34fb9 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/jr-to-b-2.s @@ -0,0 +1,42 @@ + .abicalls + .text + .align 2 + .set mips16 + .ent s + .type s, @function +s: + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + j $31 + li $2,1 + .set macro + .set reorder + + .end s + .size s, .-s + .align 2 + .globl t + .set nomips16 + .ent t + .type t, @function +t: + .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .cpload $25 + .set nomacro + lw $25,%got(s)($28) + nop + addiu $25,$25,%lo(s) + .reloc 1f,R_MIPS_JALR,s +1: jr $25 + nop + + .set macro + .set reorder + .end t + .size t, .-t diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index ea70ea1fe8b..7b1a57b7619 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -522,3 +522,9 @@ if { $linux_gnu } { } run_dump_test "undefined" + +# Test the conversion from jr to b +if { $linux_gnu } { + run_dump_test "jr-to-b-1" + run_dump_test "jr-to-b-2" +}