Module Name: src
Committed By: joerg
Date: Sat Jun 18 18:16:40 UTC 2011
Modified Files:
src/lib/libm/arch/i387: abi.h
Log Message:
SSE2 registers are only used for float and double arguments, so update
comment to reflect reality. Add some accessor macros for long double
arguments for i386 and x86_64.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libm/arch/i387/abi.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libm/arch/i387/abi.h
diff -u src/lib/libm/arch/i387/abi.h:1.5 src/lib/libm/arch/i387/abi.h:1.6
--- src/lib/libm/arch/i387/abi.h:1.5 Mon Jun 23 10:24:13 2008
+++ src/lib/libm/arch/i387/abi.h Sat Jun 18 18:16:40 2011
@@ -1,12 +1,12 @@
-/* $NetBSD: abi.h,v 1.5 2008/06/23 10:24:13 drochner Exp $ */
+/* $NetBSD: abi.h,v 1.6 2011/06/18 18:16:40 joerg Exp $ */
/*
* Written by Frank van der Linden ([email protected])
*/
/*
- * The x86-64 ABI specifies that float, double and long double
- * arguments are passed in SSE2 (xmm) registers. Unfortunately,
+ * The x86-64 ABI specifies that float and double arguments
+ * are passed in SSE2 (xmm) registers. Unfortunately,
* there is no way to push those on to the FP stack, which is
* where the fancier instructions get their arguments from.
*
@@ -16,6 +16,8 @@
#ifdef __x86_64__
+#define ARG_LONG_DOUBLE_ONE 8(%rsp)
+#define ARG_LONG_DOUBLE_TWO 24(%rsp)
#define ARG_DOUBLE_ONE -8(%rsp)
#define ARG_DOUBLE_ONE_LSW -8(%rsp)
#define ARG_DOUBLE_ONE_MSW -4(%rsp)
@@ -49,6 +51,8 @@
#else
+#define ARG_LONG_DOUBLE_ONE 4(%rsp)
+#define ARG_LONG_DOUBLE_TWO 16(%rsp)
#define ARG_DOUBLE_ONE 4(%esp)
#define ARG_DOUBLE_ONE_LSW 4(%esp)
#define ARG_DOUBLE_ONE_MSW 8(%esp)