Double-register load and store instructions using an odd-numbered register as the low part trigger an `illegal instruction' trap on the 88110 (and I can't see this documented anywhere in the manual). Of course there is code "in the wild" which uses such constructs (libgmp is one such example).
Double-register load and store instructions using an odd-numbered register as
the low part trigger an `illegal instruction' trap on the 88110 (and I can't
see this documented anywhere in the manual). Of course there is code "in the
wild" which uses such constructs (libgmp is one such example).

Extend double_reg_fixup() to take the trap type as an extra argument, and
explicitely allow ld.d or st.d instructions with odd-numbered registers at
aligned addresses if we are invoked from the `illegal instruction' trap
handler, to give this code a chance to run on 88110.

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars