Amodes are constructed before registers are allocated. This means
that registers passed in to the amode constructors are typically
virtual and thusly have a 0 register number. So these asserts would fire.
This has not surfaced yet because currently no BX12 and BX20 amodes
are being constructed.
Constructing BX12 and BX20 amodes wouldn't be a bad thing. So I'm
not removing those functions.
s390_amode *am = LibVEX_Alloc_inline(sizeof(s390_amode));
vassert(fits_unsigned_12bit(d));
- vassert(hregNumber(b) != 0);
- vassert(hregNumber(x) != 0);
am->tag = S390_AMODE_BX12;
am->d = d;
s390_amode *am = LibVEX_Alloc_inline(sizeof(s390_amode));
vassert(fits_signed_20bit(d));
- vassert(hregNumber(b) != 0);
- vassert(hregNumber(x) != 0);
am->tag = S390_AMODE_BX20;
am->d = d;