diff options
Diffstat (limited to 'src/vm/callingconvention.h')
-rw-r--r-- | src/vm/callingconvention.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/vm/callingconvention.h b/src/vm/callingconvention.h index e70e31f3a7..eaabaa42b2 100644 --- a/src/vm/callingconvention.h +++ b/src/vm/callingconvention.h @@ -583,8 +583,8 @@ public: if (TransitionBlock::IsFloatArgumentRegisterOffset(argOffset)) { - // Dividing by 8 as size of each register in FloatArgumentRegisters is 8 bytes. - pLoc->m_idxFloatReg = (argOffset - TransitionBlock::GetOffsetOfFloatArgumentRegisters()) / 8; + // Dividing by 16 as size of each register in FloatArgumentRegisters is 16 bytes. + pLoc->m_idxFloatReg = (argOffset - TransitionBlock::GetOffsetOfFloatArgumentRegisters()) / 16; if (!m_argTypeHandle.IsNull() && m_argTypeHandle.IsHFA()) { @@ -1332,7 +1332,8 @@ int ArgIteratorTemplate<ARGITERATOR_BASE>::GetNextOffset() { if (cFPRegs + m_idxFPReg <= 8) { - int argOfs = TransitionBlock::GetOffsetOfFloatArgumentRegisters() + m_idxFPReg * 8; + // Each floating point register in the argument area is 16 bytes. + int argOfs = TransitionBlock::GetOffsetOfFloatArgumentRegisters() + m_idxFPReg * 16; m_idxFPReg += cFPRegs; return argOfs; } |