Mercurial > hg > CbC > old > device
comparison mc-code-powerpc.c @ 901:8bdd5061cb8f
RSTRUCT removal (at last)
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Apr 2014 11:10:41 +0900 |
parents | 5313ed059cee |
children | 485f13206916 |
comparison
equal
deleted
inserted
replaced
900:8d225b0c3cf3 | 901:8bdd5061cb8f |
---|---|
2610 if (t>=0&&(car(t)==STRUCT||car(t)==UNION)) { | 2610 if (t>=0&&(car(t)==STRUCT||car(t)==UNION)) { |
2611 // The struct should be pushed after complex arguments. | 2611 // The struct should be pushed after complex arguments. |
2612 if (e5) { // compute address only, complex_ is me now. Clear it. | 2612 if (e5) { // compute address only, complex_ is me now. Clear it. |
2613 complex_ = 0; | 2613 complex_ = 0; |
2614 e4 = car(e3); | 2614 e4 = car(e3); |
2615 if (car(e4)==RSTRUCT) e4 = cadr(e4); | 2615 if (car(e4)==INDIRECT) e4 = cadr(e4); |
2616 else if (car(e4)==INDIRECT) e4 = cadr(e4); | |
2617 if (!simple_arg(e4)) { | 2616 if (!simple_arg(e4)) { |
2618 // Calculate complex struct address here. | 2617 // Calculate complex struct address here. |
2619 // If simple, leave it. | 2618 // If simple, leave it. |
2620 arg = get_register_var(0); | 2619 arg = get_register_var(0); |
2621 g_expr_u(assign_expr0(arg,e4,INT,INT)); | 2620 g_expr_u(assign_expr0(arg,e4,INT,INT)); |