back out r5212 and r5210; Follow the thread of
http://www.coreboot.org/pipermail/coreboot/2010-March/056501.html for the details. Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5214 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
c0fbbd0416
commit
c6b0e7e2d9
|
@ -1896,16 +1896,12 @@ static void use_triple(struct triple *used, struct triple *user)
|
||||||
return;
|
return;
|
||||||
if (!user)
|
if (!user)
|
||||||
return;
|
return;
|
||||||
if (used->use == (void*)-1)
|
ptr = &used->use;
|
||||||
used->use = 0;
|
while(*ptr) {
|
||||||
if (used->use) {
|
if ((*ptr)->member == user) {
|
||||||
ptr = &used->use;
|
return;
|
||||||
while(*ptr) {
|
|
||||||
if ((*ptr)->member == user) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ptr = &(*ptr)->next;
|
|
||||||
}
|
}
|
||||||
|
ptr = &(*ptr)->next;
|
||||||
}
|
}
|
||||||
/* Append new to the head of the list,
|
/* Append new to the head of the list,
|
||||||
* copy_func and rename_block_variables
|
* copy_func and rename_block_variables
|
||||||
|
@ -11557,7 +11553,7 @@ static struct triple *constant_expr(struct compile_state *state)
|
||||||
|
|
||||||
static struct triple *assignment_expr(struct compile_state *state)
|
static struct triple *assignment_expr(struct compile_state *state)
|
||||||
{
|
{
|
||||||
struct triple *def, *left, *left2, *right;
|
struct triple *def, *left, *right;
|
||||||
int tok, op, sign;
|
int tok, op, sign;
|
||||||
/* The C grammer in K&R shows assignment expressions
|
/* The C grammer in K&R shows assignment expressions
|
||||||
* only taking unary expressions as input on their
|
* only taking unary expressions as input on their
|
||||||
|
@ -11578,9 +11574,6 @@ static struct triple *assignment_expr(struct compile_state *state)
|
||||||
*/
|
*/
|
||||||
def = conditional_expr(state);
|
def = conditional_expr(state);
|
||||||
left = def;
|
left = def;
|
||||||
left2 = left;
|
|
||||||
if (!(left2->id & TRIPLE_FLAG_FLATTENED))
|
|
||||||
left2 = copy_triple(state, left2);
|
|
||||||
switch((tok = peek(state))) {
|
switch((tok = peek(state))) {
|
||||||
case TOK_EQ:
|
case TOK_EQ:
|
||||||
lvalue(state, left);
|
lvalue(state, left);
|
||||||
|
@ -11606,19 +11599,19 @@ static struct triple *assignment_expr(struct compile_state *state)
|
||||||
}
|
}
|
||||||
def = write_expr(state, left,
|
def = write_expr(state, left,
|
||||||
triple(state, op, left->type,
|
triple(state, op, left->type,
|
||||||
read_expr(state, left2), right));
|
read_expr(state, left), right));
|
||||||
break;
|
break;
|
||||||
case TOK_PLUSEQ:
|
case TOK_PLUSEQ:
|
||||||
lvalue(state, left);
|
lvalue(state, left);
|
||||||
eat(state, TOK_PLUSEQ);
|
eat(state, TOK_PLUSEQ);
|
||||||
def = write_expr(state, left,
|
def = write_expr(state, left,
|
||||||
mk_add_expr(state, left2, assignment_expr(state)));
|
mk_add_expr(state, left, assignment_expr(state)));
|
||||||
break;
|
break;
|
||||||
case TOK_MINUSEQ:
|
case TOK_MINUSEQ:
|
||||||
lvalue(state, left);
|
lvalue(state, left);
|
||||||
eat(state, TOK_MINUSEQ);
|
eat(state, TOK_MINUSEQ);
|
||||||
def = write_expr(state, left,
|
def = write_expr(state, left,
|
||||||
mk_sub_expr(state, left2, assignment_expr(state)));
|
mk_sub_expr(state, left, assignment_expr(state)));
|
||||||
break;
|
break;
|
||||||
case TOK_SLEQ:
|
case TOK_SLEQ:
|
||||||
case TOK_SREQ:
|
case TOK_SREQ:
|
||||||
|
@ -11642,7 +11635,7 @@ static struct triple *assignment_expr(struct compile_state *state)
|
||||||
}
|
}
|
||||||
def = write_expr(state, left,
|
def = write_expr(state, left,
|
||||||
triple(state, op, left->type,
|
triple(state, op, left->type,
|
||||||
read_expr(state, left2), right));
|
read_expr(state, left), right));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return def;
|
return def;
|
||||||
|
|
Loading…
Reference in New Issue