summaryrefslogtreecommitdiff
path: root/www/mozilla/files/xptcstubs_asm_sparc64_netbsd.s
diff options
context:
space:
mode:
Diffstat (limited to 'www/mozilla/files/xptcstubs_asm_sparc64_netbsd.s')
-rw-r--r--www/mozilla/files/xptcstubs_asm_sparc64_netbsd.s49
1 files changed, 24 insertions, 25 deletions
diff --git a/www/mozilla/files/xptcstubs_asm_sparc64_netbsd.s b/www/mozilla/files/xptcstubs_asm_sparc64_netbsd.s
index d493a5cd21e..6557db78b18 100644
--- a/www/mozilla/files/xptcstubs_asm_sparc64_netbsd.s
+++ b/www/mozilla/files/xptcstubs_asm_sparc64_netbsd.s
@@ -32,36 +32,35 @@ SharedStub:
! we don't create a new frame yet, but work within the frame of the calling
! function to give ourselves the other parameters we want
- mov %o0, %o1 ! shuffle the index up to 2nd place
- mov %i0, %o0 ! the original 'this'
- add %fp, 0x7ff+128+(2*8), %o2 ! previous stack top adjusted to the first argument slot (beyond 'this')
+ mov %o0, %o1 ! shuffle the index up to 2nd place
+ mov %i0, %o0 ! the original 'this'
+ add %fp, 0x7ff + 136, %o2 ! previous stack top adjusted to the first argument slot (beyond 'this')
+
! save off the original incoming parameters that arrived in
! registers, the ABI guarantees the space for us to do this
- st %i1, [%o2 + 0]
- st %i2, [%o2 + 8]
- st %i3, [%o2 + 16]
- st %i4, [%o2 + 24]
- st %i5, [%o2 + 32]
+ stx %i1, [%fp + 0x7ff + 136]
+ stx %i2, [%fp + 0x7ff + 144]
+ stx %i3, [%fp + 0x7ff + 152]
+ stx %i4, [%fp + 0x7ff + 160]
+ stx %i5, [%fp + 0x7ff + 168]
! now we can build our own stack frame
- save %sp,-(176),%sp ! room for the register window
+ save %sp,-(128 + 64),%sp ! room for the register window and
+ ! struct pointer, rounded up to 0 % 64
! our function now appears to have been called
! as SharedStub(nsISupports* that, PRUint32 index, PRUint32* args)
! so we can just copy these through
-
- mov %i0, %o0
- mov %i1, %o1
- mov %i2, %o2
- call PrepareAndDispatch
- nop
- ret
- restore %o0,0,%o0
-! XXXX what's all the rest of this for?
- mov %o0,%i0 ! propogate return value
- b .LL1
- nop
+
+ mov %i0, %o0
+ mov %i1, %o1
+ mov %i2, %o2
+ call PrepareAndDispatch
+ nop
+ mov %o0,%i0 ! propagate return value
+ b .LL1
+ nop
.LL1:
- ret
- restore
+ ret
+ restore
- .size SharedStub, .-SharedStub
- .type SharedStub, #function
+ .size SharedStub, .-SharedStub
+ .type SharedStub, #function