Bug #2602 is fixed now. But the fix makes gcc-torture-execute-20021120-1 fail. I decided to still commit the fix for #2602, since it fixes two test failures, and it seems the iCode is now always correct. I suspect we trigger a register allocation / code generation issue for ds390. To me (who is not familiar with ds390) is seems as if for the line
if (gd[i] != i * 4 || gf[i] != i)
SDCC generates code which uses dptr both for data storage and as an address register.
Philipp
Fixed in [r11137]
The register allocation for dptr an d the alternate dptr seemed a bit reckless. I am surprised there weren't more regression test failures.