summaryrefslogtreecommitdiffstats
path: root/test/MC/Mips/do_switch2.s
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2014-04-23 16:57:46 -0700
committerStephen Hines <srhines@google.com>2014-04-24 15:53:16 -0700
commit36b56886974eae4f9c5ebc96befd3e7bfe5de338 (patch)
treee6cfb69fbbd937f450eeb83bfb83b9da3b01275a /test/MC/Mips/do_switch2.s
parent69a8640022b04415ae9fac62f8ab090601d8f889 (diff)
downloadexternal_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.zip
external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.gz
external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.bz2
Update to LLVM 3.5a.
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
Diffstat (limited to 'test/MC/Mips/do_switch2.s')
-rw-r--r--test/MC/Mips/do_switch2.s77
1 files changed, 77 insertions, 0 deletions
diff --git a/test/MC/Mips/do_switch2.s b/test/MC/Mips/do_switch2.s
new file mode 100644
index 0000000..824054f
--- /dev/null
+++ b/test/MC/Mips/do_switch2.s
@@ -0,0 +1,77 @@
+// This test case will cause an internal EK_GPRel64BlockAddress to be
+// produced. This was not handled for direct object and an assertion
+// to occur. This is a variation on test case test/CodeGen/Mips/do_switch.ll
+
+// RUN: llvm-mc < %s -filetype=obj -triple=mips-pc-linux -relocation-model=pic
+
+ .text
+ .abicalls
+ .section .mdebug.abi32,"",@progbits
+ .file "/home/espindola/llvm/llvm/test/MC/Mips/do_switch.ll"
+ .text
+ .globl main
+ .align 2
+ .type main,@function
+ .set nomips16
+ .ent main
+main: # @main
+ .frame $sp,8,$ra
+ .mask 0x00000000,0
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+ .set noat
+# BB#0: # %entry
+ lui $2, %hi(_gp_disp)
+ addiu $2, $2, %lo(_gp_disp)
+ addiu $sp, $sp, -8
+ addiu $1, $zero, 2
+ sw $1, 4($sp)
+ lw $3, 4($sp)
+ sltiu $1, $3, 4
+ bnez $1, $BB0_2
+ addu $2, $2, $25
+$BB0_1: # %bb4
+ addiu $2, $zero, 4
+ jr $ra
+ addiu $sp, $sp, 8
+$BB0_2: # %entry
+ sll $1, $3, 2
+ lw $3, %got($JTI0_0)($2)
+ addu $1, $1, $3
+ lw $1, %lo($JTI0_0)($1)
+ addu $1, $1, $2
+ jr $1
+ nop
+$BB0_3: # %bb5
+ addiu $2, $zero, 1
+ jr $ra
+ addiu $sp, $sp, 8
+$BB0_4: # %bb1
+ addiu $2, $zero, 2
+ jr $ra
+ addiu $sp, $sp, 8
+$BB0_5: # %bb2
+ addiu $2, $zero, 0
+ jr $ra
+ addiu $sp, $sp, 8
+$BB0_6: # %bb3
+ addiu $2, $zero, 3
+ jr $ra
+ addiu $sp, $sp, 8
+ .set at
+ .set macro
+ .set reorder
+ .end main
+$tmp0:
+ .size main, ($tmp0)-main
+ .section .rodata,"a",@progbits
+ .align 2
+$JTI0_0:
+ .gpword ($BB0_3)
+ .gpword ($BB0_4)
+ .gpword ($BB0_5)
+ .gpword ($BB0_6)
+
+
+ .text