[quake3-commits] r2023 - trunk/code/asm

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Jun 13 07:07:13 EDT 2011


Author: thilo
Date: 2011-06-13 07:07:13 -0400 (Mon, 13 Jun 2011)
New Revision: 2023

Added:
   trunk/code/asm/qasm-inline.h
Modified:
   trunk/code/asm/ftola.c
   trunk/code/asm/snapvector.c
Log:
- Still forgot qasm-inline.h
- Leave GCC more freedom in choice of registers


Modified: trunk/code/asm/ftola.c
===================================================================
--- trunk/code/asm/ftola.c	2011-06-13 10:54:37 UTC (rev 2022)
+++ trunk/code/asm/ftola.c	2011-06-13 11:07:13 UTC (rev 2023)
@@ -33,7 +33,7 @@
   __asm__ volatile
   (
     "cvttss2si %1, %0\n"
-    : "=a" (retval)
+    : "=r" (retval)
     : "x" (f)
   );
   
@@ -61,7 +61,7 @@
     "flds %1\n"
     "fistpl %1\n"
     "mov %1, %0\n"
-    : "=a" (retval)
+    : "=r" (retval)
     : "m" (f)
   );
   

Added: trunk/code/asm/qasm-inline.h
===================================================================
--- trunk/code/asm/qasm-inline.h	                        (rev 0)
+++ trunk/code/asm/qasm-inline.h	2011-06-13 11:07:13 UTC (rev 2023)
@@ -0,0 +1,39 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Quake III Arena source code; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+===========================================================================
+*/
+#ifndef __ASM_INLINE_I386__
+#define __ASM_INLINE_I386__
+
+#include "../qcommon/q_platform.h"
+
+#ifdef idx64
+  #define EAX "%%rax"
+  #define EBX "%%rbx"
+  #define ESP "%%rsp"
+  #define EDI "%%rdi"
+#else
+  #define EAX "%%eax"
+  #define EBX "%%ebx"
+  #define ESP "%%esp"
+  #define EDI "%%edi"
+#endif
+
+#endif

Modified: trunk/code/asm/snapvector.c
===================================================================
--- trunk/code/asm/snapvector.c	2011-06-13 10:54:37 UTC (rev 2022)
+++ trunk/code/asm/snapvector.c	2011-06-13 11:07:13 UTC (rev 2023)
@@ -70,13 +70,13 @@
         	"sub $2, " ESP "\n"
         	"fnstcw (" ESP ")\n"
         	"fldcw %0\n"
-        	QROUNDX87("(" EAX ")")
-        	QROUNDX87("4(" EAX ")")
-        	QROUNDX87("8(" EAX ")")
+        	QROUNDX87("(%1)")
+        	QROUNDX87("4(%1)")
+        	QROUNDX87("8(%1)")
         	"fldcw (" ESP ")\n"
         	"add $2, " ESP "\n"
         	:
-        	: "m" (fpucw), "a" (vec)
+        	: "m" (fpucw), "r" (vec)
         	: "memory"
 	);
 }



More information about the quake3-commits mailing list