Mercurial > hg > CbC > old > device
diff mc-code-ia32.c @ 693:e5a498eab0f4
*** empty log message ***
author | kono |
---|---|
date | Sat, 13 Oct 2007 18:49:28 +0900 |
parents | baa67e2e54d2 |
children | 22e0330a6d5b |
line wrap: on
line diff
--- 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);