On 27.10.2016 12:49, Bernd Schmidt wrote:
On 10/27/2016 12:16 PM, Georg-Johann Lay wrote:
Now imagine some arithmetic like &&LAB2 - &&LAB1.  This might result in
one or two stub addresses, and difference between such addresses is a
complete different thing than the difference between the original
labels:  The result might differ in absolute value and in sign, i.e. you
can't even determine whether LAB1 or LAB2 comes first in the generated
code as the order of stubs might differ from the order of respective
labels.

Ok, so you can't expect to use the value directly, but I think this is not too
different from other targets. You still should be able to add the difference
back to &&LAB1 and expect to get &&LAB2 or gs(&&LAB2). That's what the
execution test does - why isn't this working?

Bernd

Makes sense what you are writing... Just replacing a label should not do any harm (except for ordering). I had a deeper look into it and some tests are failing because of a missing Binutils support for special expressions, not because the tests don't work per se. Patching the generated asm to results as would be provided by working Binutils make the test pass.

Johann


Reply via email to