sparc: Preprocess float point struct return

We can eliminate recursion and speed structure return
by flattening a nested structure tree into a bitmask.
This commit is contained in:
Richard Henderson
2014-11-12 09:35:24 +01:00
parent 2b27890ba7
commit 0686c2e71c
3 changed files with 106 additions and 33 deletions
+5 -6
View File
@@ -177,12 +177,11 @@ E 15
std %f6, [%l2+56]
! Copy the structure into place.
ldx [%i0+16], %o0 ! load rtype from cif
mov 0, %o1 ! load off
mov %i2, %o2 ! load dst
mov %l2, %o3 ! load src_int
call C(ffi_v9_layout_struct)
add %l2, 32, %o4 ! load src_fp
srl %l0, SPARC_FLTMASK_SHIFT, %o0 ! load size_mask
mov %i2, %o1 ! load dst
mov %l2, %o2 ! load src_gp
call C(ffi_struct_float_copy)
add %l2, 32, %o3 ! load src_fp
return %i7+8
nop