.file "pr60003.c" .option nopic # GNU C17 (GCC) version 14.0.0 20230830 (experimental) (riscv-unknown-elf) # compiled by GNU C version 11.4.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP # GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 # options passed: -march=rv64gc_zba_zbb_zbs_zicond -mabi=lp64d -O1 .text .align 1 .globl baz .type baz, @function baz: addi sp,sp,-16 #,, sd ra,8(sp) #, sd s0,0(sp) #, addi s0,sp,16 #,, # pr60003.c:11: __builtin_longjmp (&jmp_buf, 1); lui a5,%hi(.LANCHOR0) # tmp135, addi a5,a5,%lo(.LANCHOR0) # tmp134, tmp135, ld a4,8(a5) # tmp136, ld a3,0(a5) # tmp137, ld sp,16(a5) #, mv s0,a3 #, tmp137 jr a4 # tmp136 .size baz, .-baz .align 1 .globl bar .type bar, @function bar: addi sp,sp,-16 #,, sd ra,8(sp) #, # pr60003.c:17: baz (); call baz # .size bar, .-bar .align 1 .globl foo .type foo, @function foo: addi sp,sp,-224 #,, sd ra,216(sp) #, sd s0,208(sp) #, sd s1,200(sp) #, sd s2,192(sp) #, sd s3,184(sp) #, sd s4,176(sp) #, sd s5,168(sp) #, sd s6,160(sp) #, sd s7,152(sp) #, sd s8,144(sp) #, sd s9,136(sp) #, sd s10,128(sp) #, sd s11,120(sp) #, fsd fs0,104(sp) #, fsd fs1,96(sp) #, fsd fs2,88(sp) #, fsd fs3,80(sp) #, fsd fs4,72(sp) #, fsd fs5,64(sp) #, fsd fs6,56(sp) #, fsd fs7,48(sp) #, fsd fs8,40(sp) #, fsd fs9,32(sp) #, fsd fs10,24(sp) #, fsd fs11,16(sp) #, sd a0,8(sp) # tmp142, %sfp # pr60003.c:25: if (__builtin_setjmp (&jmp_buf) == 0) lui a5,%hi(.LANCHOR0) # tmp138, addi a5,a5,%lo(.LANCHOR0) # sd s0,0(a5) # ^^^^^^^ orig X (2) ^^^^^^^^^ lui a4,%hi(.L6) # addi a4,a4,%lo(.L6) # sd a4,8(a5) # sd sp,16(a5) #, # pr60003.c:17: baz (); call baz # .L6: # pr60003.c:25: if (__builtin_setjmp (&jmp_buf) == 0) # pr60003.c:40: } li a5,1 # ^^^^ (1) ^^^^^^^^^ ld a4,8(sp) # ^^^^ orig X (2) ^^^^^^^^^ czero.nez a0,a4,a5 # ^^^^ BUG since both ops are non zero ld ra,216(sp) #, ld s0,208(sp) #, ld s1,200(sp) #, ld s2,192(sp) #, ld s3,184(sp) #, ld s4,176(sp) #, ld s5,168(sp) #, ld s6,160(sp) #, ld s7,152(sp) #, ld s8,144(sp) #, ld s9,136(sp) #, ld s10,128(sp) #, ld s11,120(sp) #, fld fs0,104(sp) #, fld fs1,96(sp) #, fld fs2,88(sp) #, fld fs3,80(sp) #, fld fs4,72(sp) #, fld fs5,64(sp) #, fld fs6,56(sp) #, fld fs7,48(sp) #, fld fs8,40(sp) #, fld fs9,32(sp) #, fld fs10,24(sp) #, fld fs11,16(sp) #, addi sp,sp,224 #,, jr ra # .size foo, .-foo .align 1 .globl main .type main, @function main: addi sp,sp,-16 #,, sd ra,8(sp) #, # pr60003.c:45: if (foo (2) == 0) // orig test has foo (1) li a0,2 #, call foo # # pr60003.c:49: } seqz a0,a0 #, tmp143 ld ra,8(sp) #, addi sp,sp,16 #,, jr ra # .size main, .-main .globl jmp_buf .bss .align 3 .set .LANCHOR0,. + 0 .type jmp_buf, @object .size jmp_buf, 40 jmp_buf: .zero 40 .ident "GCC: (GNU) 14.0.0 20230830 (experimental)"