changeset 769:74701505c42d

i64 switch
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 18 Nov 2010 01:47:03 +0900
parents ec9fdbb27351
children b674d8421430
files mc-code-i64.c
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mc-code-i64.c	Thu Nov 18 01:08:52 2010 +0900
+++ b/mc-code-i64.c	Thu Nov 18 01:47:03 2010 +0900
@@ -4544,7 +4544,8 @@
     printf("\tja\t_%d\n",dlabel);
     if (delta==1)  {
 #ifdef __APPLE__
-	printf("\tmovq\t_%d-(%%rip,%s,8),%s\n",l,crn,crn);
+	printf("\tleaq\t_%d(%%rip),%%rbx\n",l);
+	printf("\tmovslq\t(%%rbx,%s,4),%s\n",crn,crn);
 	printf("\taddq\t%%rbx,%s\n",crn);
 	printf("\tjmp\t*%s\n",crn);
 #else
@@ -4565,7 +4566,8 @@
 	printf("\tandl\t%%eax,%%edx\n");
 	printf("\tjne\t_%d\n",dlabel);
 #ifdef __APPLE__
-	printf("\tmovq\t_%d-(%%rip,%s,6),%s\n",l,crn,crn);
+	printf("\tleaq\t_%d(%%rip),%%rbx\n",l);
+	printf("\tmovslq\t(%%rbx,%s,2),%s\n",crn,crn);
 	printf("\taddq\t%%rbx,%s\n",crn);
 	printf("\tjmp\t*%s\n",crn);
 #else
@@ -4577,7 +4579,8 @@
 	printf("\tandl\t%%eax,%%edx\n");
 	printf("\tjne\t_%d\n",dlabel);
 #ifdef __APPLE__
-	printf("\tmovq\t_%d-(%%ebx,%s,4),%s\n",l,crn,crn);
+	printf("\tleaq\t_%d(%%rip),%%rbx\n",l);
+	printf("\tmovslq\t(%%rbx,%s),%s\n",crn,crn);
 	printf("\taddq\t%%rbx,%s\n",crn);
 	printf("\tjmp\t*%s\n",crn);
 #else
@@ -4590,7 +4593,8 @@
 	printf("\tandl\t%%edx,%%edx\n");
 	printf("\tjne\t_%d\n",dlabel);
 #ifdef __APPLE__
-	printf("\tmovq\t_%d-(%%rbx,%s,8),%s\n",l,crn,crn);
+	printf("\tleaq\t_%d(%%rip),%%rbx\n",l);
+	printf("\tmovslq\t(%%rbx,%s,4),%s\n",crn,crn);
 	printf("\taddq\t%%rbx,%s\n",crn);
 	printf("\tjmp\t*%s\n",crn);
 #else