Commit 1ad0b17177526be86736e245fbcc21eadaf7cb36

Richard Henderson 2015-01-16T13:30:05

sparc: Also mark the return address in unwind info

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