mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 12:52:46 +00:00
don't use move for non-structs. it wasn't an optimisation anyway. this
fixes the internal error when compiling the quake1 progs
This commit is contained in:
parent
65033cbe64
commit
6ece3bc481
1 changed files with 5 additions and 5 deletions
|
@ -2176,17 +2176,17 @@ assign_expr (expr_t *e1, expr_t *e2)
|
||||||
}
|
}
|
||||||
type = t1;
|
type = t1;
|
||||||
if (is_indirect (e1) && is_indirect (e2)) {
|
if (is_indirect (e1) && is_indirect (e2)) {
|
||||||
if (options.code.progsversion == PROG_ID_VERSION) {
|
if (extract_type (e2) == ev_struct) {
|
||||||
|
e1 = address_expr (e1, 0, 0);
|
||||||
|
e2 = address_expr (e2, 0, 0);
|
||||||
|
e = new_binary_expr ('M', e1, e2);
|
||||||
|
} else {
|
||||||
expr_t *temp = new_temp_def_expr (t1);
|
expr_t *temp = new_temp_def_expr (t1);
|
||||||
|
|
||||||
e = new_block_expr ();
|
e = new_block_expr ();
|
||||||
append_expr (e, assign_expr (temp, e2));
|
append_expr (e, assign_expr (temp, e2));
|
||||||
append_expr (e, assign_expr (e1, temp));
|
append_expr (e, assign_expr (e1, temp));
|
||||||
e->e.block.result = temp;
|
e->e.block.result = temp;
|
||||||
} else {
|
|
||||||
e1 = address_expr (e1, 0, 0);
|
|
||||||
e2 = address_expr (e2, 0, 0);
|
|
||||||
e = new_binary_expr ('M', e1, e2);
|
|
||||||
}
|
}
|
||||||
return e;
|
return e;
|
||||||
} else if (is_indirect (e1)) {
|
} else if (is_indirect (e1)) {
|
||||||
|
|
Loading…
Reference in a new issue