[Bug target/93808] [9 Regression] [SH] Ruby crashes with 'Illegal Instruction' with -fcrossjumping
olegendo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Feb 20 15:41:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93808
Oleg Endo <olegendo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2020-02-20
Ever confirmed|0 |1
--- Comment #15 from Oleg Endo <olegendo at gcc dot gnu.org> ---
Compiling attachment 47879 with regular sh-elf cross compiler:
sh-elf-gcc -c -O2 -save-temps -dp string_coderange_scan.c
and looking at the generated assembly, clearly shows the bug right before the
2nd casesi_worker_1 insn:
.L48:
mov.l .L120,r0 ! 11 [c=10 l=2] movsi_i/0
add #8,r15 ! 1214 [c=4 l=2] *addsi3/0
lds.l @r15+,pr ! 1216 [c=1 l=2] movsi_i/14
mov.l @r15+,r14 ! 1217 [c=1 l=2] movsi_i/5
mov.l @r15+,r13 ! 1218 [c=1 l=2] movsi_i/5
mov.l @r15+,r12 ! 1219 [c=1 l=2] movsi_i/5
mov.l @r15+,r11 ! 1220 [c=1 l=2] movsi_i/5
mov.l @r15+,r10 ! 1221 [c=1 l=2] movsi_i/5
mov.l @r15+,r9 ! 1222 [c=1 l=2] movsi_i/5
rts ! 1225 [c=0 l=2] *return_i
mov.l @r15+,r8 ! 1223 [c=1 l=2] movsi_i/5
.align 1
.L96:
sub r2,r10 ! 278 [c=4 l=2] *subsi3_internal
mov #3,r2 ! 282 [c=4 l=2] movsi_i/2
.L11: ! <<<< jump target BEFORE the constant pool
.L121:
.align 2
.L120:
.long 1048576 ! <<<< this is a constant in the constant pool
.align 1
.L58:
mov r13,r3 ! 1119 [c=4 l=2] movsi_i/1
bra .L15 ! 1261 [c=5 l=2] jump_compact
add #-16,r3 ! 1120 [c=4 l=2] *addsi3/0
.align 1
.L29:
mov.b @(14,r3),r0 ! 316 [c=2 l=2]
*extendqisi2_compact_mem_disp/0
cmp/pz r0 ! 317 [c=4 l=2] cmpgesi_t/0
bf .L107 ! 318 [c=17 l=2] *cbranch_t
.L30:
mov.b @(15,r3),r0 ! 330 [c=2 l=2]
*extendqisi2_compact_mem_disp/0
cmp/pz r0 ! 331 [c=4 l=2] cmpgesi_t/0
bt .L48 ! 332 [c=17 l=2] *cbranch_t
mov r13,r8 ! 1068 [c=4 l=2] movsi_i/1
bra .L23 ! 1265 [c=5 l=2] jump_compact
add #-1,r8 ! 334 [c=4 l=2] *addsi3/0
.align 1
.L101:
sub r3,r1 ! 465 [c=4 l=2] *subsi3_internal
mov r1,r3 ! 1083 [c=4 l=2] movsi_i/1
.L33:
mov #3,r7 ! 469 [c=4 l=2] movsi_i/2
cmp/hi r7,r3 ! 474 [c=4 l=2] cmpgtusi_t
.L153:
bt .L11 ! 475 [c=17 l=2] *cbranch_t <<< bad jump
mova .L42,r0 ! 1085 [c=9 l=2] mova
add r3,r3 ! 1086 [c=9 l=4] casesi_worker_1/0
mov.w @(r0,r3),r3
add r0,r3 ! 1087 [c=4 l=2] *addsi3/0
jmp @r3
nop ! 477 [c=4 l=4] casesi_jump_1
.align 2
More information about the Gcc-bugs
mailing list