|
From: Florian K. <br...@ac...> - 2012-08-25 03:17:16
|
The s390 frontend would like to use Ijk_EmFail. But that jump-kind
is not as nicely supported in VEX as its buddy Ijk_EmWarn. Specifically,
- there is LibVEX_EmWarn_string but not LibVEX_EmFail_string
- there is VexEmWarn but no VexEmFail
- the guest state has no slot for the failure number
So what to do? Three choices:
(1) Introduce LibVEX_EmFail_string and VexEmFail. Add a slot
guest_EMFAIL to the guest state.
(2) Reuse the existing infrastructure. I.e. add failure codes to
VEXEmWarn and have LibVEX_EmWarn_string return the failure text.
Likewise, reuse guest_EMWARN for emulation failure codes. This
would work as Ijk_EmFail and Ijk_EmWarn are mutually exclusive.
(3) Like (2), reuse existing infrastructure but rename to use neutral
names, perhaps:
LibVEX_EmWarn_string --> LibVEX_EmNote_string
VEXEmWarn --> VEXEmNote
guest_EMWARN --> guest_EMNOTE
My choice in decreasing order of preference is: 3, 1, 2
I include #3, because I don't have a handle on how many serious uses
of VEX are out there that could be broken by the incompatible change in
that choice. So if that is a concern, then #3 is out.
Any comments or suggestions?
Florian
|
|
From: Julian S. <js...@ac...> - 2012-08-25 07:56:10
|
> (3) Like (2), reuse existing infrastructure but rename to use neutral > names, perhaps: > LibVEX_EmWarn_string --> LibVEX_EmNote_string > VEXEmWarn --> VEXEmNote > guest_EMWARN --> guest_EMNOTE > > My choice in decreasing order of preference is: 3, 1, 2 > I include #3, because I don't have a handle on how many serious uses > of VEX are out there that could be broken by the incompatible change in > that choice. I have no idea either. 3 seems fine to me. J |