diff options
author | Jan Vorlicek <janvorli@microsoft.com> | 2015-10-22 10:55:02 -0700 |
---|---|---|
committer | Jan Vorlicek <janvorli@microsoft.com> | 2015-10-22 10:55:02 -0700 |
commit | c13593b553ca78c6a94a2523e8f8549031077b60 (patch) | |
tree | 929291b42dc757dcc054ca5b876779034846a655 /src/vm/argdestination.h | |
parent | e9f018f94407e80c3ed76f227717deac70cc85f7 (diff) | |
download | coreclr-c13593b553ca78c6a94a2523e8f8549031077b60.tar.gz coreclr-c13593b553ca78c6a94a2523e8f8549031077b60.tar.bz2 coreclr-c13593b553ca78c6a94a2523e8f8549031077b60.zip |
Fix floatingpoint register offsets in TransitionBlock for Unix
The conversion between floating point register index and offset was incorrectly
multiplying the the index by 8 instead of 16. The xmm registers in the
TransitionBlock on Unix take 16 bytes each, not 8.
Diffstat (limited to 'src/vm/argdestination.h')
-rw-r--r-- | src/vm/argdestination.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm/argdestination.h b/src/vm/argdestination.h index 5896414f35..7837e51086 100644 --- a/src/vm/argdestination.h +++ b/src/vm/argdestination.h @@ -57,7 +57,7 @@ public: { LIMITED_METHOD_CONTRACT; _ASSERTE(IsStructPassedInRegs()); - int offset = TransitionBlock::GetOffsetOfFloatArgumentRegisters() + m_argLocDescForStructInRegs->m_idxFloatReg * 8; + int offset = TransitionBlock::GetOffsetOfFloatArgumentRegisters() + m_argLocDescForStructInRegs->m_idxFloatReg * 16; return dac_cast<PTR_VOID>(dac_cast<TADDR>(m_base) + offset); } |