changeset 693:e5a498eab0f4

*** empty log message ***
author kono
date Sat, 13 Oct 2007 18:49:28 +0900
parents 6785c63f0558
children edc024fc7472
files .gdbinit mc-code-arm.c mc-code-ia32.c mc-code-mips.c mc-code-powerpc.c mc-code-spu.c mc-parse.c
diffstat 7 files changed, 18 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/.gdbinit	Fri Oct 12 21:40:45 2007 +0900
+++ b/.gdbinit	Sat Oct 13 18:49:28 2007 +0900
@@ -13,11 +13,11 @@
 x/1i $eip
 end
 b errmsg
-# r -s test/tmp7.c
+r -s test/tmp7.c
 # r -s test/tmp6.c
 # r -s test/call.c
 # r -s test/code-gen-all.c
 # r -s mc-code-powerpc.c
-r -s test/strinit.c
+# r -s test/strinit.c
 # r -s -DINLINE=inline test/strinit.c
 # r -s test/fact-a.c
--- a/mc-code-arm.c	Fri Oct 12 21:40:45 2007 +0900
+++ b/mc-code-arm.c	Sat Oct 13 18:49:28 2007 +0900
@@ -2570,12 +2570,12 @@
 	    if (e5) { // compute address only, complex_ is me now. Clear it.
 		complex_ = 0;
 		e4 = car(e3);
-		if (car(e4)!=RSTRUCT) error(-1);
-		if (!simple_arg(cadr(e4))) {
+		if (car(e4)==RSTRUCT) e4 = cadr(e4);
+		if (!simple_arg(e4)) {
 		    // Calculate complex struct address here.
 		    // If simple, leave it.
 		    arg = get_register_var(0);
-		    g_expr_u(assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT));
+		    g_expr_u(assign_expr0(arg,e4,INT,INT));
 		    car(e3)=arg;
 		    reg_arg_list = list2(arg,reg_arg_list);
 		    if (car(arg)==REGISTER) use_input_reg(cadr(arg),1);
--- a/mc-code-ia32.c	Fri Oct 12 21:40:45 2007 +0900
+++ b/mc-code-ia32.c	Sat Oct 13 18:49:28 2007 +0900
@@ -1849,17 +1849,17 @@
             if (e5) { // compute address only, complex_ is me now. Clear it.
                 complex_ = 0;
                 e4 = car(e3);
-                if (car(e4)!=RSTRUCT) error(-1);
-                if (!simple_arg(cadr(e4))) {
+                if (car(e4)==RSTRUCT) e4 = cadr(e4);
+                if (!simple_arg(e4)) {
                     // Calculate complex struct address here.
                     // If simple, leave it.
                     arg = get_register_var(0);
 #if ARG_ORDER==1
 		    delayed_arg = list2(
-			assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT),
+			assign_expr0(arg,e4,INT,INT),
 			delayed_arg);
 #else
-                    g_expr_u(assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT));
+                    g_expr_u(assign_expr0(arg,e4,INT,INT));
 #endif
                     car(e3)=arg;
                     reg_arg_list = list2(arg,reg_arg_list);
--- a/mc-code-mips.c	Fri Oct 12 21:40:45 2007 +0900
+++ b/mc-code-mips.c	Sat Oct 13 18:49:28 2007 +0900
@@ -2166,12 +2166,12 @@
 	    if (e5) { // compute address only, complex_ is me now. Clear it.
 		complex_ = 0;
 		e4 = car(e3);
-		if (car(e4)!=RSTRUCT) error(-1);
-		if (!simple_arg(cadr(e4))) {
+		if (car(e4)!=RSTRUCT) e4 = cadr(e4);
+		if (!simple_arg(e4)) {
 		    // Calculate complex struct address here.
 		    // If simple, leave it.
 		    arg = get_register_var(0);
-		    g_expr_u(assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT));
+		    g_expr_u(assign_expr0(arg,e4,INT,INT));
 		    car(e3)=arg;
 		    reg_arg_list = list2(arg,reg_arg_list);
 		    if (car(arg)==REGISTER) use_input_reg(cadr(arg),1);
--- a/mc-code-powerpc.c	Fri Oct 12 21:40:45 2007 +0900
+++ b/mc-code-powerpc.c	Sat Oct 13 18:49:28 2007 +0900
@@ -2493,12 +2493,12 @@
 	    if (e5) { // compute address only, complex_ is me now. Clear it.
 		complex_ = 0;
 		e4 = car(e3);
-		if (car(e4)!=RSTRUCT) error(-1);
-		if (!simple_arg(cadr(e4))) {
+		if (car(e4)==RSTRUCT) e4 = cadr(e4);
+		if (!simple_arg(e4)) {
 		    // Calculate complex struct address here.
 		    // If simple, leave it.
 		    arg = get_register_var(0);
-		    g_expr_u(assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT));
+		    g_expr_u(assign_expr0(arg,e4,INT,INT));
 		    car(e3)=arg;
 		    reg_arg_list = list2(arg,reg_arg_list);
 		    if (car(arg)==REGISTER) use_input_reg(cadr(arg),1);
--- a/mc-code-spu.c	Fri Oct 12 21:40:45 2007 +0900
+++ b/mc-code-spu.c	Sat Oct 13 18:49:28 2007 +0900
@@ -2475,12 +2475,12 @@
 	    if (e5) { // compute address only, complex_ is me now. Clear it.
 		complex_ = 0;
 		e4 = car(e3);
-		if (car(e4)!=RSTRUCT) error(-1);
+		if (car(e4)==RSTRUCT) e4 = cadr(e4);
 		if (!simple_arg(cadr(e4))) {
 		    // Calculate complex struct address here.
 		    // If simple, leave it.
 		    arg = get_register_var(0);
-		    g_expr_u(assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT));
+		    g_expr_u(assign_expr0(arg,e4,INT,INT));
 		    car(e3)=arg;
 		    reg_arg_list = list2(arg,reg_arg_list);
 		    if (car(arg)==REGISTER) use_input_reg(cadr(arg),1);
--- a/mc-parse.c	Fri Oct 12 21:40:45 2007 +0900
+++ b/mc-parse.c	Sat Oct 13 18:49:28 2007 +0900
@@ -2123,9 +2123,8 @@
 {
     int sd = stypedecl;
     int arglist,arg_disp;
-    int sinmode;
+    int sinmode = inmode;
     if (parse_mode)  {
-	sinmode = inmode;
 	inmode = INLINE;
     }
     if (!inmode) {