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 (f...@wasabisystems.com)
  */
 
 /*
- * 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)

Reply via email to