}
-/* Construct an AMODE for accessing stack pointer at OFFSET.
- OFFSET can be at most 3 * sizeof(VexGuestS390XState) + LibVEX_N_SPILL_BYTES
- which may be too large for a B12 addressing mode.
- Use a B20 amode as a fallback which will be safe for any offset.
-*/
+/* Construct an AMODE for accessing the stack pointer at OFFSET.
+ Current offset values are small enough such that the following
+ implementation suffices. */
s390_amode *
s390_amode_for_stack_pointer(Int offset)
{
if (fits_signed_20bit(offset))
return s390_amode_b20(offset, s390_hreg_stack_pointer());
- vpanic("invalid stack pointer offset");
+ vpanic("stack pointer offset out of range");
}
doHelperCall. */
vassert(rloc.pri == RLPri_V128SpRel);
vassert(addToSp == sizeof(V128));
- s390_amode* am = s390_amode_b12(rloc.spOff, s390_hreg_stack_pointer());
+ s390_amode *am = s390_amode_for_stack_pointer(rloc.spOff);
addInstr(env, s390_insn_load(sizeof(V128), dst, am));
add_to_SP(env, addToSp);
break;