sparc: Also mark the return address in unwind info
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
diff --git a/src/sparc/v8.S b/src/sparc/v8.S
index f675151..3f48382 100644
--- a/src/sparc/v8.S
+++ b/src/sparc/v8.S
@@ -83,6 +83,7 @@ C(ffi_call_v8):
save %sp, %o4, %sp
cfi_def_cfa_register(%fp)
cfi_window_save
+ cfi_register(%o7, %i7)
mov %i0, %o0 ! copy cif
add %sp, 64+32, %o1 ! load args area
@@ -258,6 +259,7 @@ C(ffi_go_closure_v8):
save %sp, -STACKFRAME, %sp
cfi_def_cfa_register(%fp)
cfi_window_save
+ cfi_register(%o7, %i7)
ld [%g2+4], %o0 ! load cif
ld [%g2+8], %o1 ! load fun
@@ -276,6 +278,7 @@ C(ffi_closure_v8):
save %sp, -STACKFRAME, %sp
cfi_def_cfa_register(%fp)
cfi_window_save
+ cfi_register(%o7, %i7)
ld [%g2+FFI_TRAMPOLINE_SIZE], %o0 ! load cif
ld [%g2+FFI_TRAMPOLINE_SIZE+4], %o1 ! load fun
diff --git a/src/sparc/v9.S b/src/sparc/v9.S
index 1ffd66d..05ef54c 100644
--- a/src/sparc/v9.S
+++ b/src/sparc/v9.S
@@ -61,6 +61,7 @@ C(ffi_call_v9):
save %sp, %o4, %sp
cfi_def_cfa_register(%fp)
cfi_window_save
+ cfi_register(%o7, %i7)
mov %i0, %o0 ! copy cif
add %sp, STACK_BIAS+128+48, %o1 ! load args area
@@ -222,6 +223,7 @@ C(ffi_go_closure_v9):
save %sp, -STACKFRAME, %sp
cfi_def_cfa_register(%fp)
cfi_window_save
+ cfi_register(%o7, %i7)
ldx [%g5+8], %o0
ldx [%g5+16], %o1
@@ -241,6 +243,7 @@ C(ffi_closure_v9):
save %sp, -STACKFRAME, %sp
cfi_def_cfa_register(%fp)
cfi_window_save
+ cfi_register(%o7, %i7)
ldx [%g1+FFI_TRAMPOLINE_SIZE], %o0
ldx [%g1+FFI_TRAMPOLINE_SIZE+8], %o1