Page MenuHomePhabricator

[ARM] Fix so immediates and pc relative checks

Authored by simonwallis2 on Sep 1 2020, 3:17 AM.



An SoImm 32 bit immediate constant is an 8 bit value 0 to 255
rotated right by a 4-bit even count, 0, 2, . . 28, 30.

Most negative values that are multiple of 4 in the range -1020 to -4 cannot be represent by an SoImm.

This commit stops considering an SoImm encoding for a negative offset to a constant island.

Diff Detail

Event Timeline

simonwallis2 created this revision.Sep 1 2020, 3:17 AM
simonwallis2 requested review of this revision.Sep 1 2020, 3:17 AM
simonwallis2 abandoned this revision.Sep 1 2020, 6:14 AM

Abandoning this patch.
I overlooked that NegOk is fine for ADR, encoding A2.
I failed to look beyond encoding A1.