https://bugs.kde.org/show_bug.cgi?id=402351

--- Comment #4 from Mark Wielaard <m...@klomp.org> ---
For ppc64be this is the output:

//// doing translating guest PPC64(1030) BigEndian 64bits to host MIPS64(1033)
BigEndian 64bits

------------------------ Front end ------------------------

        0x103C34C8:                ------ IMark(0x103C34C8, 0, 0) ------
              PUT(1296) = 0x103C34C8:I64
              PUT(1296) = GET:I64(1296); exit-NoDecode

GuestBytes 103C34C8 0   00000000


------------------------ After pre-instr IR optimisation
------------------------

IRSB {
   t0:I64   

   ------ IMark(0x103C34C8, 0, 0) ------
   PUT(1296) = 0x103C34C8:I64; exit-NoDecode
}


------------------------ After instrumentation ------------------------

IRSB {
   t0:I64   

   ------ IMark(0x103C34C8, 0, 0) ------
   PUT(1296) = 0x103C34C8:I64; exit-NoDecode
}


------------------------ After post-instr IR optimisation
------------------------

IRSB {
   t0:I64   

   ------ IMark(0x103C34C8, 0, 0) ------
   PUT(1296) = 0x103C34C8:I64; exit-NoDecode
}


------------------------  After tree-building ------------------------

IRSB {
   t0:I64   

   ------ IMark(0x103C34C8, 0, 0) ------
   PUT(1296) = 0x103C34C8:I64; exit-NoDecode
}


------------------------ Instruction selection ------------------------
(evCheck) lw $9, 8($23); addiu $9, $9, -1; sw $9, 8($23); bgez $t9, nofail;
jalr *0($23); nofail:

-- ------ IMark(0x103C34C8, 0, 0) ------

-- PUT(1296) = 0x103C34C8:I64; exit-NoDecode
li %vR1,0x00000000103C34C8
(xAssisted) if (guest_COND.AL) { sw %vR1, 1296($23); move $9,
$IRJumpKind_to_TRCVAL(6664); move $9, $disp_assisted; jalr $9; nop; }

  0   (evCheck) lw $9, 8($23); addiu $9, $9, -1; sw $9, 8($23); bgez $t9,
nofail; jalr *0($23); nofail:
  1   li %vR1,0x00000000103C34C8
  2   (xAssisted) if (guest_COND.AL) { sw %vR1, 1296($23); move $9,
$IRJumpKind_to_TRCVAL(6664); move $9, $disp_assisted; jalr $9; nop; }


------------------------ Register-allocated code ------------------------

  0   (evCheck) lw $9, 8($23); addiu $9, $9, -1; sw $9, 8($23); bgez $t9,
nofail; jalr *0($23); nofail:
  1   li $24,0x00000000103C34C8
  2   (xAssisted) if (guest_COND.AL) { sw $24, 1296($23); move $9,
$IRJumpKind_to_TRCVAL(6664); move $9, $disp_assisted; jalr $9; nop; }


------------------------ Assembly ------------------------

(evCheck) lw $9, 8($23); addiu $9, $9, -1; sw $9, 8($23); bgez $t9, nofail;
jalr *0($23); nofail:
8E E9 00 08 25 29 FF FF AE E9 00 08 05 21 00 03 DE E9 00 00 01 20 F8 09 00 00
00 00 

li $24,0x00000000103C34C8
3C 18 10 3C 37 18 34 C8 

(xAssisted) if (guest_COND.AL) { sw $24, 1296($23); move $9,
$IRJumpKind_to_TRCVAL(6664); move $9, $disp_assisted; jalr $9; nop; }
FE F8 05 10 3C 17 00 00 36 F7 00 00 00 17 BC 38 36 F7 00 00 00 17 BC 38 36 F7
00 45 3C 09 00 00 35 29 00 00 00 09 4C 38 35 29 10 3C 00 09 4C 38 35 29 34 98
01 20 F8 09 00 00 00 00 

VexExpansionRatio 0 96   960 :10

For s390x it is:

//// doing translating guest S390X(1031) BigEndian 64bits to host MIPS64(1033)
BigEndian 64bits

------------------------ Front end ------------------------

ldgr     %f2,%r11
              ------ IMark(0x1000920, 4, 0) ------
              PUT(96) = ReinterpI64asF64(GET:I64(664))
              PUT(720) = 0x1000924:I64

ldgr     %f0,%r15
              ------ IMark(0x1000924, 4, 0) ------
              PUT(64) = ReinterpI64asF64(GET:I64(696))
              PUT(720) = 0x1000928:I64

lay      %r15,-168(%r15)
              ------ IMark(0x1000928, 6, 0) ------
              t1 = 0xFFFFFFFFFFFFFF58:I64
              t0 = Add64(Add64(t1,GET:I64(696)),0x0:I64)
              PUT(696) = t0
              PUT(720) = 0x100092E:I64

lgr      %r11,%r15
              ------ IMark(0x100092E, 4, 0) ------
              PUT(664) = GET:I64(696)
              PUT(720) = 0x1000932:I64

stg      %r2,160(%r11)
              ------ IMark(0x1000932, 6, 0) ------
              t3 = 0xA0:I64
              t2 = Add64(Add64(t3,GET:I64(664)),0x0:I64)
              STbe(t2) = GET:I64(592)
              PUT(720) = 0x1000938:I64

lg       %r1,160(%r11)
              ------ IMark(0x1000938, 6, 0) ------
              t5 = 0xA0:I64
              t4 = Add64(Add64(t5,GET:I64(664)),0x0:I64)
              PUT(584) = LDbe:I64(t4)
              PUT(720) = 0x100093E:I64

mvhi     0(%r1),1031
              ------ IMark(0x100093E, 6, 0) ------
              t6 = Add64(0x0:I64,GET:I64(584))
              STbe(t6) = 0x407:I32
              PUT(720) = 0x1000944:I64

nopr    
              ------ IMark(0x1000944, 2, 0) ------
              PUT(720) = 0x1000946:I64

lgdr     %r11,%f2
              ------ IMark(0x1000946, 4, 0) ------
              PUT(664) = ReinterpF64asI64(GET:F64(96))
              PUT(720) = 0x100094A:I64

lgdr     %r15,%f0
              ------ IMark(0x100094A, 4, 0) ------
              PUT(696) = ReinterpF64asI64(GET:F64(64))
              PUT(720) = 0x100094E:I64

br       %r14
              ------ IMark(0x100094E, 2, 0) ------
              PUT(720) = GET:I64(688)
              PUT(720) = GET:I64(720); exit-Return

GuestBytes 1000920 48  B3 C1 00 2B B3 C1 00 0F E3 F0 FF 58 FF 71 B9 04 00 BF E3
20 B0 A0 00 24 E3 10 B0 A0 00 04 E5 4C 10 00 04 07 07 00 B3 CD 00 B2 B3 CD 00
F0 07 FE  EC1F5600


------------------------ After pre-instr IR optimisation
------------------------

IRSB {
   t0:I64   t1:I64   t2:I64   t3:I64   t4:I64   t5:I64   t6:I64   t7:I32
   t8:I32   t9:F64   t10:I64   t11:F64   t12:I64   t13:I64   t14:I64   t15:I64
   t16:I64   t17:I64   t18:I64   t19:I64   t20:I64   t21:I64   t22:I64  
t23:I64
   t24:I64   t25:I64   t26:I64   t27:I64   t28:F64   t29:I64   t30:F64  
t31:I64
   t32:I64   

   ------ IMark(0x1000920, 4, 0) ------
   t10 = GET:I64(664)
   t9 = ReinterpI64asF64(t10)
   PUT(96) = t9
   ------ IMark(0x1000924, 4, 0) ------
   t12 = GET:I64(696)
   t11 = ReinterpI64asF64(t12)
   PUT(64) = t11
   ------ IMark(0x1000928, 6, 0) ------
   t14 = Add64(0xFFFFFFFFFFFFFF58:I64,t12)
   PUT(696) = t14
   ------ IMark(0x100092E, 4, 0) ------
   PUT(664) = t14
   PUT(720) = 0x1000932:I64
   ------ IMark(0x1000932, 6, 0) ------
   t18 = Add64(0xA0:I64,t14)
   t20 = GET:I64(592)
   STbe(t18) = t20
   PUT(720) = 0x1000938:I64
   ------ IMark(0x1000938, 6, 0) ------
   t22 = t18
   t24 = LDbe:I64(t22)
   PUT(584) = t24
   PUT(720) = 0x100093E:I64
   ------ IMark(0x100093E, 6, 0) ------
   STbe(t24) = 0x407:I32
   ------ IMark(0x1000944, 2, 0) ------
   ------ IMark(0x1000946, 4, 0) ------
   t27 = ReinterpF64asI64(t9)
   PUT(664) = t27
   ------ IMark(0x100094A, 4, 0) ------
   t29 = ReinterpF64asI64(t11)
   PUT(696) = t29
   ------ IMark(0x100094E, 2, 0) ------
   t31 = GET:I64(688)
   PUT(720) = t31; exit-Return
}


------------------------ After instrumentation ------------------------

IRSB {
   t0:I64   t1:I64   t2:I64   t3:I64   t4:I64   t5:I64   t6:I64   t7:I32
   t8:I32   t9:F64   t10:I64   t11:F64   t12:I64   t13:I64   t14:I64   t15:I64
   t16:I64   t17:I64   t18:I64   t19:I64   t20:I64   t21:I64   t22:I64  
t23:I64
   t24:I64   t25:I64   t26:I64   t27:I64   t28:F64   t29:I64   t30:F64  
t31:I64
   t32:I64   

   ------ IMark(0x1000920, 4, 0) ------
   t10 = GET:I64(664)
   t9 = ReinterpI64asF64(t10)
   PUT(96) = t9
   ------ IMark(0x1000924, 4, 0) ------
   t12 = GET:I64(696)
   t11 = ReinterpI64asF64(t12)
   PUT(64) = t11
   ------ IMark(0x1000928, 6, 0) ------
   t14 = Add64(0xFFFFFFFFFFFFFF58:I64,t12)
   PUT(696) = t14
   ------ IMark(0x100092E, 4, 0) ------
   PUT(664) = t14
   PUT(720) = 0x1000932:I64
   ------ IMark(0x1000932, 6, 0) ------
   t18 = Add64(0xA0:I64,t14)
   t20 = GET:I64(592)
   STbe(t18) = t20
   PUT(720) = 0x1000938:I64
   ------ IMark(0x1000938, 6, 0) ------
   t22 = t18
   t24 = LDbe:I64(t22)
   PUT(584) = t24
   PUT(720) = 0x100093E:I64
   ------ IMark(0x100093E, 6, 0) ------
   STbe(t24) = 0x407:I32
   ------ IMark(0x1000944, 2, 0) ------
   ------ IMark(0x1000946, 4, 0) ------
   t27 = ReinterpF64asI64(t9)
   PUT(664) = t27
   ------ IMark(0x100094A, 4, 0) ------
   t29 = ReinterpF64asI64(t11)
   PUT(696) = t29
   ------ IMark(0x100094E, 2, 0) ------
   t31 = GET:I64(688)
   PUT(720) = t31; exit-Return
}


------------------------ After post-instr IR optimisation
------------------------

IRSB {
   t0:I64   t1:I64   t2:I64   t3:I64   t4:I64   t5:I64   t6:I64   t7:I32
   t8:I32   t9:F64   t10:I64   t11:F64   t12:I64   t13:I64   t14:I64   t15:I64
   t16:I64   t17:I64   t18:I64   t19:I64   t20:I64   t21:I64   t22:I64  
t23:I64
   t24:I64   t25:I64   t26:I64   t27:I64   t28:F64   t29:I64   t30:F64  
t31:I64
   t32:I64   

   ------ IMark(0x1000920, 4, 0) ------
   t10 = GET:I64(664)
   t9 = ReinterpI64asF64(t10)
   PUT(96) = t9
   ------ IMark(0x1000924, 4, 0) ------
   t12 = GET:I64(696)
   t11 = ReinterpI64asF64(t12)
   PUT(64) = t11
   ------ IMark(0x1000928, 6, 0) ------
   t14 = Add64(0xFFFFFFFFFFFFFF58:I64,t12)
   PUT(696) = t14
   ------ IMark(0x100092E, 4, 0) ------
   PUT(664) = t14
   PUT(720) = 0x1000932:I64
   ------ IMark(0x1000932, 6, 0) ------
   t18 = Add64(0xA0:I64,t14)
   t20 = GET:I64(592)
   STbe(t18) = t20
   PUT(720) = 0x1000938:I64
   ------ IMark(0x1000938, 6, 0) ------
   t22 = t18
   t24 = LDbe:I64(t22)
   PUT(584) = t24
   PUT(720) = 0x100093E:I64
   ------ IMark(0x100093E, 6, 0) ------
   STbe(t24) = 0x407:I32
   ------ IMark(0x1000944, 2, 0) ------
   ------ IMark(0x1000946, 4, 0) ------
   t27 = ReinterpF64asI64(t9)
   PUT(664) = t27
   ------ IMark(0x100094A, 4, 0) ------
   t29 = ReinterpF64asI64(t11)
   PUT(696) = t29
   ------ IMark(0x100094E, 2, 0) ------
   t31 = GET:I64(688)
   PUT(720) = t31; exit-Return
}


------------------------  After tree-building ------------------------

IRSB {
   t0:I64   t1:I64   t2:I64   t3:I64   t4:I64   t5:I64   t6:I64   t7:I32
   t8:I32   t9:F64   t10:I64   t11:F64   t12:I64   t13:I64   t14:I64   t15:I64
   t16:I64   t17:I64   t18:I64   t19:I64   t20:I64   t21:I64   t22:I64  
t23:I64
   t24:I64   t25:I64   t26:I64   t27:I64   t28:F64   t29:I64   t30:F64  
t31:I64
   t32:I64   

   ------ IMark(0x1000920, 4, 0) ------
   t9 = ReinterpI64asF64(GET:I64(664))
   PUT(96) = t9
   ------ IMark(0x1000924, 4, 0) ------
   t12 = GET:I64(696)
   t11 = ReinterpI64asF64(t12)
   PUT(64) = t11
   ------ IMark(0x1000928, 6, 0) ------
   t14 = Add64(0xFFFFFFFFFFFFFF58:I64,t12)
   PUT(696) = t14
   ------ IMark(0x100092E, 4, 0) ------
   PUT(664) = t14
   PUT(720) = 0x1000932:I64
   ------ IMark(0x1000932, 6, 0) ------
   t18 = Add64(0xA0:I64,t14)
   STbe(t18) = GET:I64(592)
   PUT(720) = 0x1000938:I64
   ------ IMark(0x1000938, 6, 0) ------
   t24 = LDbe:I64(t18)
   PUT(584) = t24
   PUT(720) = 0x100093E:I64
   ------ IMark(0x100093E, 6, 0) ------
   STbe(t24) = 0x407:I32
   ------ IMark(0x1000944, 2, 0) ------
   ------ IMark(0x1000946, 4, 0) ------
   PUT(664) = ReinterpF64asI64(t9)
   ------ IMark(0x100094A, 4, 0) ------
   PUT(696) = ReinterpF64asI64(t11)
   ------ IMark(0x100094E, 2, 0) ------
   PUT(720) = GET:I64(688); exit-Return
}


------------------------ Instruction selection ------------------------
(evCheck) lw $9, 804($23); addiu $9, $9, -1; sw $9, 804($23); bgez $t9, nofail;
jalr *808($23); nofail:

-- ------ IMark(0x1000920, 4, 0) ------

-- t9 = ReinterpI64asF64(GET:I64(664))

vex: priv/host_mips_isel.c:4915 (iselInt64Expr): Assertion `!env->mode64'
failed.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to