sm64/tools/asm-processor/tests/late_rodata_jtbl_mips1.c
2023-08-17 08:56:02 -04:00

156 lines
1.9 KiB
C

// COMPILE-FLAGS: -O2
// COMPILE-ISET: -mips1
// exact copy of late_rodata_jtbl.c except for the -mips1 addition
GLOBAL_ASM(
.late_rodata
.double 1
.double 2
.double 3
.double 4
.double 5
.double 6
.double 7
.double 8
.text
glabel doubles1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
)
float a(void) { return 1.1f; }
GLOBAL_ASM(
.late_rodata
.float 1
.double 2
.double 3
.double 4
.double 5
.double 6
.double 7
.double 8
.double 9
.float 10
.text
glabel doubles2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
)
GLOBAL_ASM(
glabel a2
move $a0, $a0
nop
nop
nop
jr $ra
move $a0, $a0
)
GLOBAL_ASM(
.late_rodata
glabel jtbl
.word case0, case1, case2, case3, case4, case5, case6, case7, case8, case9, case10
.word case11, case12, case13, case14, case15, case16, case17, case18, case19, case20
.word case21, case22, case23, case24, case25, case26
.text
glabel foo
sltiu $at, $a0, 0xa
beqz $at, .L756E659B
sll $t7, $a0, 2
lui $at, %hi(jtbl)
addu $at, $at, $t7
lw $t7, %lo(jtbl)($at)
jr $t7
nop
case0: addiu $a0, $a0, 1
case1: addiu $a0, $a0, 1
case2: addiu $a0, $a0, 1
case3: addiu $a0, $a0, 1
case4: addiu $a0, $a0, 1
case5: addiu $a0, $a0, 1
case6: addiu $a0, $a0, 1
case7: addiu $a0, $a0, 1
case8: addiu $a0, $a0, 1
case9: addiu $a0, $a0, 1
case10: addiu $a0, $a0, 1
case11: addiu $a0, $a0, 1
case12: addiu $a0, $a0, 1
case13: addiu $a0, $a0, 1
case14: addiu $a0, $a0, 1
case15: addiu $a0, $a0, 1
case16: addiu $a0, $a0, 1
case17: addiu $a0, $a0, 1
case18: addiu $a0, $a0, 1
case19: addiu $a0, $a0, 1
case20: addiu $a0, $a0, 1
case21: addiu $a0, $a0, 1
case22: addiu $a0, $a0, 1
case23: addiu $a0, $a0, 1
case24: addiu $a0, $a0, 1
case25: addiu $a0, $a0, 1
case26:
jr $ra
addiu $v0, $a0, 1
.L756E659B:
addiu $v0, $zero, 2
jr $ra
nop
)
GLOBAL_ASM(
glabel b2
move $a0, $a0
nop
nop
jr $ra
move $a0, $a0
)
float b(void) { return 1.2f; }