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)