Alternative fix for "Incorrect function call code on ARMv6"

"make test" crashes without that "save_regs()".

This partially reverts
commit 49d3118621.

Found another solution:  In a 2nd pass Just look if
any of the argument registers has been saved again,
and restore if so.
This commit is contained in:
grischka
2016-10-03 12:27:50 +02:00
parent 78f1c10e0f
commit 5805b07218
2 changed files with 16 additions and 0 deletions

View File

@ -861,6 +861,11 @@ ST_FUNC int gv(int rc)
#endif
if (r >= VT_CONST || /* XXX: test to VT_CONST incorrect ? */
(vtop->r & VT_LVAL)) {
/* We do not want to modifier the long long
pointer here, so the safest (and less
efficient) is to save all the other registers
in the stack. XXX: totally inefficient. */
save_regs(1);
/* load from memory */
vtop->type.t = load_type;
load(r, vtop);