https://bugs.kde.org/show_bug.cgi?id=490182
--- Comment #2 from Paul Floyd <pjfl...@wanadoo.fr> --- That's probably this bit case HRcVec128: { HReg x21 = hregARM64_X21(); // baseblock HReg x9 = hregARM64_X9(); // spill temporary vassert(0 == (offsetB & 15)); // check sane alignment vassert(offsetB < 4096); It looks like vreg_state[v_idx].spill_offset = toShort(con->guest_sizeB * 3 + ss_no * 8); guest_sizeB is 944, so *3 that's 2832. ssno is less than this constant # define N_SPILL64S (LibVEX_N_SPILL_BYTES / 8) and #define LibVEX_N_SPILL_BYTES 4096 Lastly for (ss_no = 0; ss_no < N_SPILL64S; ss_no++) { if (ss_busy_until_before[ss_no] <= vreg_state[v_idx].live_after) break; } if (ss_no == N_SPILL64S) { vpanic("N_SPILL64S is too low in VEX. Increase and recompile."); } That looks inconsistent with the asserts. ss_no can go up to 512 in the above code. But the calculation of spill_offset includes guest plus 2 shadows which leaves only 1264 bytes or 148 spill registers. Not sure how to fix this. -- You are receiving this mail because: You are watching all bug changes.