* 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 Chao-ying Fu <fu@mips.com>
+
+ * 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 <dan@codesourcery.com>
* ld-arm/arm-elf.exp (armelftests): Assemble Cortex-A8 tests with
--- /dev/null
+#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:
+
+.* <s>:
+.*: 03e00008 jr ra
+.*: 24020001 li v0,1
+
+.* <t>:
+.*: 3c1c.... lui gp,.*
+.*: 279c.... addiu gp,gp,.*
+.*: 0399e021 addu gp,gp,t9
+.*: 8f998018 lw t9,.*\(gp\)
+.*: 00000000 nop
+.*: 2739.... addiu t9,t9,.*
+.*: 1000fff7 b .* <s>
+.*: 00000000 nop
+#pass
--- /dev/null
+ .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
--- /dev/null
+#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:
+
+.* <s>:
+.*: e820 jr ra
+.*: 6a01 li v0,1
+
+.* <t>:
+.*: 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
--- /dev/null
+ .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
}
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"
+}