Added test reproducing an issue with constants, jumptables and traps.
This commit is contained in:
parent
54f03529db
commit
43b0cd6eae
|
@ -0,0 +1,45 @@
|
|||
the_function:
|
||||
cmpwi cr6, r3, 3
|
||||
bgt .case_3
|
||||
lis r12, .the_table@ha
|
||||
addi r12, r12, .the_table@l
|
||||
slwi r3, r3, 2
|
||||
lwzx r3, r12, r3
|
||||
mtspr ctr, r3
|
||||
bctr
|
||||
.the_table:
|
||||
.long .case_0
|
||||
.long .case_1
|
||||
.long .case_2
|
||||
.long .case_3
|
||||
.case_0:
|
||||
li r11, 8
|
||||
b .the_divide
|
||||
.case_1:
|
||||
li r11, 16
|
||||
b .the_divide
|
||||
.case_2:
|
||||
li r11, 24
|
||||
b .the_divide
|
||||
.case_3:
|
||||
li r11, 32
|
||||
.the_divide:
|
||||
extsw r11, r11
|
||||
tdllei r11, 0
|
||||
divdu r4, r4, r11
|
||||
blr
|
||||
|
||||
test_jumptable_constants:
|
||||
li r3, 0
|
||||
li r4, 1024
|
||||
bl the_function
|
||||
li r3, 1
|
||||
li r4, 1024
|
||||
bl the_function
|
||||
li r3, 2
|
||||
li r4, 1024
|
||||
bl the_function
|
||||
li r3, 3
|
||||
li r4, 1024
|
||||
bl the_function
|
||||
blr
|
Loading…
Reference in New Issue