27af90c8a6
XULRunner is a runtime environment for applications using the XML User Interface Language, XUL. It is the successor of the "Gecko" runtime environment. This package tracks 17.0.x extended support release.
73 lines
2.5 KiB
Text
73 lines
2.5 KiB
Text
$NetBSD: patch-xc,v 1.1 2013/01/10 16:17:11 ryoon Exp $
|
|
|
|
NetBSD/sparc64 xptcall support code. From pkgsrc/www/firefox3/files/
|
|
|
|
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc64_netbsd.s.orig 2012-08-28 18:54:12.000000000 +0000
|
|
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc64_netbsd.s
|
|
@@ -0,0 +1,66 @@
|
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
+ *
|
|
+ * The contents of this file are subject to the Netscape Public
|
|
+ * License Version 1.1 (the "License"); you may not use this file
|
|
+ * except in compliance with the License. You may obtain a copy of
|
|
+ * the License at http://www.mozilla.org/NPL/
|
|
+ *
|
|
+ * Software distributed under the License is distributed on an "AS
|
|
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
+ * implied. See the License for the specific language governing
|
|
+ * rights and limitations under the License.
|
|
+ *
|
|
+ * The Original Code is mozilla.org code.
|
|
+ *
|
|
+ * The Initial Developer of the Original Code is Netscape
|
|
+ * Communications Corporation. Portions created by Netscape are
|
|
+ * Copyright (C) 1999 Netscape Communications Corporation. All
|
|
+ * Rights Reserved.
|
|
+ *
|
|
+ * Contributor(s):
|
|
+ */
|
|
+
|
|
+ .global SharedStub
|
|
+
|
|
+/*
|
|
+ in the frame for the function that called SharedStub are the
|
|
+ rest of the parameters we need
|
|
+
|
|
+*/
|
|
+
|
|
+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 + 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
|
|
+ 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,-(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
|
|
+ mov %o0,%i0 ! propagate return value
|
|
+ b .LL1
|
|
+ nop
|
|
+.LL1:
|
|
+ ret
|
|
+ restore
|
|
+
|
|
+ .size SharedStub, .-SharedStub
|
|
+ .type SharedStub, #function
|