changeset 784:3bc6c34bfa2e

i64 obsf2
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 20 Nov 2010 16:29:25 +0900
parents feeb9b9f8236
children 33d9a4b05bc8
files .gdbinit mc-code-arm.c mc-code-i64.c mc-code-ia32.c mc-code-mips.c mc-code-powerpc.c
diffstat 6 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/.gdbinit	Sat Nov 20 13:49:56 2010 +0900
+++ b/.gdbinit	Sat Nov 20 16:29:25 2010 +0900
@@ -26,7 +26,8 @@
 # r -s test/basic.c
 # r -s test/float.c
 # r -s test/strinit.c
-r -s test/arg.c
+# r -s test/arg.c
+r -s test/obsf2.c
 # r -s test/putenemy.c
 # r -s -DINLINE=inline test/code-gen-all.c
 # r -s -DINLINE=inline test/strinit.c
--- a/mc-code-arm.c	Sat Nov 20 13:49:56 2010 +0900
+++ b/mc-code-arm.c	Sat Nov 20 16:29:25 2010 +0900
@@ -2595,6 +2595,7 @@
 		complex_ = 0;
 		e4 = car(e3);
 		if (car(e4)==RSTRUCT) e4 = cadr(e4);
+		esel if (car(e4)==INDIRECT) e4 = cadr(e4);
 		if (!simple_arg(e4)) {
 		    // Calculate complex struct address here.
 		    // If simple, leave it.
--- a/mc-code-i64.c	Sat Nov 20 13:49:56 2010 +0900
+++ b/mc-code-i64.c	Sat Nov 20 16:29:25 2010 +0900
@@ -2223,6 +2223,7 @@
                 complex_ = 0;
                 e4 = car(e3);
                 if (car(e4)==RSTRUCT) e4 = cadr(e4);
+                else if (car(e4)==INDIRECT) e4 = cadr(e4);
                 if (!simple_arg(e4)) {
                     // Calculate complex struct address here.
                     // If simple, leave it.
@@ -2237,7 +2238,7 @@
                     car(e3)=arg;
                     reg_arg_list = list2(arg,reg_arg_list);
 
-                    car(e3) = rvalue_t(arg,INT);
+                    car(e3) = rvalue_t(arg,LONGLONG);
                 }
             }
             stargs = list4(e3,stargs,nargs,reg_arg);
--- a/mc-code-ia32.c	Sat Nov 20 13:49:56 2010 +0900
+++ b/mc-code-ia32.c	Sat Nov 20 16:29:25 2010 +0900
@@ -1890,6 +1890,7 @@
                 complex_ = 0;
                 e4 = car(e3);
                 if (car(e4)==RSTRUCT) e4 = cadr(e4);
+                else if (car(e4)==INDIRECT) e4 = cadr(e4);
                 if (!simple_arg(e4)) {
                     // Calculate complex struct address here.
                     // If simple, leave it.
--- a/mc-code-mips.c	Sat Nov 20 13:49:56 2010 +0900
+++ b/mc-code-mips.c	Sat Nov 20 16:29:25 2010 +0900
@@ -2193,6 +2193,7 @@
 		complex_ = 0;
 		e4 = car(e3);
 		if (car(e4)!=RSTRUCT) e4 = cadr(e4);
+		else if (car(e4)!=INDIRECT) e4 = cadr(e4);
 		if (!simple_arg(e4)) {
 		    // Calculate complex struct address here.
 		    // If simple, leave it.
--- a/mc-code-powerpc.c	Sat Nov 20 13:49:56 2010 +0900
+++ b/mc-code-powerpc.c	Sat Nov 20 16:29:25 2010 +0900
@@ -2531,6 +2531,7 @@
 		complex_ = 0;
 		e4 = car(e3);
 		if (car(e4)==RSTRUCT) e4 = cadr(e4);
+		else if (car(e4)==INDIRECT) e4 = cadr(e4);
 		if (!simple_arg(e4)) {
 		    // Calculate complex struct address here.
 		    // If simple, leave it.