Hello all, I am running into an issue with an application of mine where I see memory corruption. I have tracked the issue down to a value written out by the following two instructions: movsd 0x250dd6(%rip),%xmm0 movups %xmm0,0x48(%rsp)
I suspect that the movsd instruction should zero out part of the %xmm0 register, but it fails to do so. The unzeroed part is being written onto my application's stack and read later on causing a bad address. I have hardware and simulator output which seems to support my premise. Also I stumbled across this after diagnosing the problem: src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py:294 (def macroop MOVSD_XMM_P) There a comment in the macroop that literally says "# Zero xmmh". I looked around a bit at the microops, but it is not clear what I need to do to flash half the register. Can anyone provide a suggestion on where I can look for an example? Thanks, Brandon _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev