On 05/29/2017 04:17 AM, Aurelien Jarno wrote:
On 2017-05-26 10:10, Richard Henderson wrote:
On 05/25/2017 02:05 PM, Aurelien Jarno wrote:
+uint32_t HELPER(trXX)(CPUS390XState *env, uint32_t r1, uint32_t r2,
+ uint32_t sizes)
+{
+ uintptr_t ra = GETPC();
+ int dsize = (sizes & 1) ? 1 : 2;
+ int ssize = (sizes & 2) ? 1 : 2;
+ uint16_t tst = env->regs[0] & ((1 << (8 * dsize)) - 1);
I think you should pass in tst as an argument. That way you can pass in an
out-of-band value when we implement ETF2 and test field M3 bit 3.
I don't mind passing r0 as an argument. That said if we want to pass tst
or bundle the M3 field, it means we need to use TCG instructions to do
so. I am not sure it brings a lot compare to doing so in the helper
side.
Not at all -- the M3 bit test would be a translation-time check.
r~