2010-01-13 Chao-ying Fu <fu@mips.com>
authorChao-ying Fu <fu@mips.com>
Wed, 13 Jan 2010 22:34:28 +0000 (22:34 +0000)
committerChao-ying Fu <fu@mips.com>
Wed, 13 Jan 2010 22:34:28 +0000 (22:34 +0000)
* 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.

ld/testsuite/ChangeLog
ld/testsuite/ld-mips-elf/jr-to-b-1.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/jr-to-b-1.s [new file with mode: 0644]
ld/testsuite/ld-mips-elf/jr-to-b-2.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/jr-to-b-2.s [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips-elf.exp

index 7fda06e759075ac4dadb011b4a68356e289072fe..414df4e15e4ec43b1ba278ac6313ad0e44a2fe91 100644 (file)
@@ -1,3 +1,9 @@
+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
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 (file)
index 0000000..c786847
--- /dev/null
@@ -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:
+
+.* <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
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 (file)
index 0000000..8f07005
--- /dev/null
@@ -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 (file)
index 0000000..4b6399f
--- /dev/null
@@ -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:
+
+.* <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
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 (file)
index 0000000..ac883c3
--- /dev/null
@@ -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
index ea70ea1fe8b9a8551a23e26aa798f5f9af378341..7b1a57b76190388d4e084eaec98c56a952de16ad 100644 (file)
@@ -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"
+}