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

Reply via email to