/* This is an automatically generated file, please do not hand-edit it.
* See the program tools-for-build/ldso-stubs.lisp. */
+#ifndef LANGUAGE_ASSEMBLY
#define LANGUAGE_ASSEMBLY
+#endif
#include \"sbcl.h\""
#!+sparc "
#endif
.text"
-#!+x86 "
+#!+(or x86 x86-64) "
#define LDSO_STUBIFY(fct) \\
.align 16 ; \\
.globl ldso_stub__ ## fct ; \\
;;; the fifth argument, as the first four are passed in registers
;;; and we apparently don't ever need to pass six arguments to a
;;; libc function. -- CSR, 2003-10-29
+;;; Expanded to 8 arguments regardless. -- ths, 2005-03-24
#!+mips "
-#define LDSO_STUBIFY(fct) \\
-.globl ldso_stub__ ## fct ; \\
- .type ldso_stub__ ## fct,@function ; \\
-ldso_stub__ ## fct: ; \\
- addiu $29,-48 ; \\
- sw $28,40($29) ; \\
- sw $31,44($29) ; \\
- lw $25,64($29) ; \\
- sw $25,16($29) ; \\
- la $25, fct ; \\
- jalr $25 ; \\
- lw $31,44($29) ; \\
- lw $28,40($29) ; \\
- addiu $29,48 ; \\
- jr $31 ; \\
-.L ## fct ## e1: ; \\
- .size ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;"))
+#define LDSO_STUBIFY(fct) \\
+ .globl ldso_stub__ ## fct ; \\
+ .type ldso_stub__ ## fct,@function ; \\
+ .ent ldso_stub__ ## fct ; \\
+ldso_stub__ ## fct: ; \\
+ .set noat ; \\
+ addiu $29,-48 ; \\
+ sw $28,40($29) ; \\
+ sw $31,44($29) ; \\
+ lw $25,64($29) ; \\
+ lw $1,68($29) ; \\
+ sw $25,16($29) ; \\
+ sw $1,20($29) ; \\
+ lw $25,72($29) ; \\
+ lw $1,76($29) ; \\
+ sw $25,24($29) ; \\
+ sw $1,28($29) ; \\
+ .set at ; \\
+ la $25, fct ; \\
+ jalr $25 ; \\
+ lw $31,44($29) ; \\
+ lw $28,40($29) ; \\
+ addiu $29,48 ; \\
+ jr $31 ; \\
+ .end ldso_stub__ ## fct ; \\
+ .size ldso_stub__ ## fct,.-ldso_stub__ ## fct ;"))
(defvar *stubs* (append
'("accept"
"malloc"
"memmove"
"mkdir"
+ "nanosleep"
+ "nl_langinfo"
"open"
"opendir"
"pipe"