mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-19 11:41:53 +00:00
![Simon Atanasyan](/assets/img/avatar_default.png)
This ensures that frame-based unwinding will continue to work when calling a noreturn function; there is not much use having the caller's frame pointer saved if you don't also have the caller's program counter. Patch by James Clarke. Differential Revision: https://reviews.llvm.org/D68542 llvm-svn: 373907
30 lines
982 B
LLVM
30 lines
982 B
LLVM
; RUN: llc -march=mipsel < %s -verify-machineinstrs | FileCheck %s
|
|
|
|
|
|
define void @tnaked() #0 {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
; CHECK: .ent tnaked
|
|
; CHECK-LABEL: tnaked:
|
|
; CHECK-NOT: .frame {{.*}}
|
|
; CHECK-NOT: .mask {{.*}}
|
|
; CHECK-NOT: .fmask {{.*}}
|
|
; CHECK-NOT: addiu $sp, $sp, -8
|
|
|
|
define void @tnonaked() #1 {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
; CHECK: .ent tnonaked
|
|
; CHECK-LABEL: tnonaked:
|
|
; CHECK: .frame $fp,8,$ra
|
|
; CHECK: .mask 0xc0000000,-4
|
|
; CHECK: .fmask 0x00000000,0
|
|
; CHECK: addiu $sp, $sp, -8
|
|
|
|
attributes #0 = { naked noinline nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
attributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|