Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/RISCV/exception-pointer-register.ll
Show All 34 Lines | |||||
; RV32I-NEXT: .Ltmp2: | ; RV32I-NEXT: .Ltmp2: | ||||
; RV32I-NEXT: mv a0, s0 | ; RV32I-NEXT: mv a0, s0 | ||||
; RV32I-NEXT: call foo | ; RV32I-NEXT: call foo | ||||
; RV32I-NEXT: .Ltmp3: | ; RV32I-NEXT: .Ltmp3: | ||||
; RV32I-NEXT: .LBB0_3: # %end2 | ; RV32I-NEXT: .LBB0_3: # %end2 | ||||
; RV32I-NEXT: lw s1, 4(sp) | ; RV32I-NEXT: lw s1, 4(sp) | ||||
; RV32I-NEXT: lw s0, 8(sp) | ; RV32I-NEXT: lw s0, 8(sp) | ||||
; RV32I-NEXT: lw ra, 12(sp) | ; RV32I-NEXT: lw ra, 12(sp) | ||||
; RV32I-NEXT: .cfi_restore ra | |||||
; RV32I-NEXT: .cfi_restore s0 | |||||
; RV32I-NEXT: .cfi_restore s1 | |||||
; RV32I-NEXT: addi sp, sp, 16 | ; RV32I-NEXT: addi sp, sp, 16 | ||||
; RV32I-NEXT: .cfi_def_cfa_offset 0 | |||||
; RV32I-NEXT: ret | ; RV32I-NEXT: ret | ||||
; RV32I-NEXT: .LBB0_4: # %lpad | ; RV32I-NEXT: .LBB0_4: # %lpad | ||||
; RV32I-NEXT: .Ltmp4: | ; RV32I-NEXT: .Ltmp4: | ||||
; RV32I-NEXT: mv s1, a0 | ; RV32I-NEXT: mv s1, a0 | ||||
; RV32I-NEXT: mv a0, s0 | ; RV32I-NEXT: mv a0, s0 | ||||
; RV32I-NEXT: call callee | ; RV32I-NEXT: call callee | ||||
; RV32I-NEXT: mv a0, s1 | ; RV32I-NEXT: mv a0, s1 | ||||
; RV32I-NEXT: call _Unwind_Resume | ; RV32I-NEXT: call _Unwind_Resume | ||||
Show All 20 Lines | |||||
; RV64I-NEXT: .Ltmp2: | ; RV64I-NEXT: .Ltmp2: | ||||
; RV64I-NEXT: mv a0, s0 | ; RV64I-NEXT: mv a0, s0 | ||||
; RV64I-NEXT: call foo | ; RV64I-NEXT: call foo | ||||
; RV64I-NEXT: .Ltmp3: | ; RV64I-NEXT: .Ltmp3: | ||||
; RV64I-NEXT: .LBB0_3: # %end2 | ; RV64I-NEXT: .LBB0_3: # %end2 | ||||
; RV64I-NEXT: ld s1, 8(sp) | ; RV64I-NEXT: ld s1, 8(sp) | ||||
; RV64I-NEXT: ld s0, 16(sp) | ; RV64I-NEXT: ld s0, 16(sp) | ||||
; RV64I-NEXT: ld ra, 24(sp) | ; RV64I-NEXT: ld ra, 24(sp) | ||||
; RV64I-NEXT: .cfi_restore ra | |||||
; RV64I-NEXT: .cfi_restore s0 | |||||
; RV64I-NEXT: .cfi_restore s1 | |||||
; RV64I-NEXT: addi sp, sp, 32 | ; RV64I-NEXT: addi sp, sp, 32 | ||||
; RV64I-NEXT: .cfi_def_cfa_offset 0 | |||||
; RV64I-NEXT: ret | ; RV64I-NEXT: ret | ||||
; RV64I-NEXT: .LBB0_4: # %lpad | ; RV64I-NEXT: .LBB0_4: # %lpad | ||||
; RV64I-NEXT: .Ltmp4: | ; RV64I-NEXT: .Ltmp4: | ||||
; RV64I-NEXT: mv s1, a0 | ; RV64I-NEXT: mv s1, a0 | ||||
; RV64I-NEXT: mv a0, s0 | ; RV64I-NEXT: mv a0, s0 | ||||
; RV64I-NEXT: call callee | ; RV64I-NEXT: call callee | ||||
; RV64I-NEXT: mv a0, s1 | ; RV64I-NEXT: mv a0, s1 | ||||
; RV64I-NEXT: call _Unwind_Resume | ; RV64I-NEXT: call _Unwind_Resume | ||||
Show All 17 Lines | |||||
end2: | end2: | ||||
ret void | ret void | ||||
} | } | ||||
define internal void @callee(i1* %p) { | define internal void @callee(i1* %p) { | ||||
; RV32I-LABEL: callee: | ; RV32I-LABEL: callee: | ||||
; RV32I: # %bb.0: | ; RV32I: # %bb.0: | ||||
; RV32I-NEXT: .cfi_def_cfa_offset 0 | |||||
; RV32I-NEXT: ret | ; RV32I-NEXT: ret | ||||
; | ; | ||||
; RV64I-LABEL: callee: | ; RV64I-LABEL: callee: | ||||
; RV64I: # %bb.0: | ; RV64I: # %bb.0: | ||||
; RV64I-NEXT: .cfi_def_cfa_offset 0 | |||||
; RV64I-NEXT: ret | ; RV64I-NEXT: ret | ||||
ret void | ret void | ||||
} | } |