|
|
@@ -29,197 +29,197 @@ ThreadContextInfo::ThreadContextInfo() :
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetNullFrameDisplayAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::NullFrameDisplay);
|
|
|
+ return ShiftAddr(this, &Js::NullFrameDisplay);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetStrictNullFrameDisplayAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::StrictNullFrameDisplay);
|
|
|
+ return ShiftAddr(this, &Js::StrictNullFrameDisplay);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetAbsDoubleCstAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::AbsDoubleCst);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::AbsDoubleCst);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetAbsFloatCstAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::AbsFloatCst);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::AbsFloatCst);
|
|
|
}
|
|
|
|
|
|
intptr_t ThreadContextInfo::GetSgnFloatBitCst() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::SgnFloatBitCst);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::SgnFloatBitCst);
|
|
|
}
|
|
|
|
|
|
intptr_t ThreadContextInfo::GetSgnDoubleBitCst() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::SgnDoubleBitCst);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::SgnDoubleBitCst);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetMaskNegFloatAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::MaskNegFloat);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::MaskNegFloat);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetMaskNegDoubleAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::MaskNegDouble);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::MaskNegDouble);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetUIntConvertConstAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::UIntConvertConst);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::UIntConvertConst);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetUint8ClampedArraySetItemAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, (BOOL(*)(Js::Uint8ClampedArray * arr, uint32 index, Js::Var value))&Js::Uint8ClampedArray::DirectSetItem);
|
|
|
+ return ShiftAddr(this, (BOOL(*)(Js::Uint8ClampedArray * arr, uint32 index, Js::Var value))&Js::Uint8ClampedArray::DirectSetItem);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetConstructorCacheDefaultInstanceAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::ConstructorCache::DefaultInstance);
|
|
|
+ return ShiftAddr(this, &Js::ConstructorCache::DefaultInstance);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetJavascriptObjectNewInstanceAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptObject::EntryInfo::NewInstance);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptObject::EntryInfo::NewInstance);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetJavascriptArrayNewInstanceAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptArray::EntryInfo::NewInstance);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptArray::EntryInfo::NewInstance);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleOnePointZeroAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::ONE_POINT_ZERO);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::ONE_POINT_ZERO);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoublePointFiveAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_PointFive);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_PointFive);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetFloatPointFiveAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Float32PointFive);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Float32PointFive);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleNegPointFiveAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_NegPointFive);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_NegPointFive);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetFloatNegPointFiveAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Float32NegPointFive);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Float32NegPointFive);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleNegOneAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_NegOne);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_NegOne);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleTwoToFractionAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_TwoToFraction);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_TwoToFraction);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetFloatTwoToFractionAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Float32TwoToFraction);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Float32TwoToFraction);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleNegTwoToFractionAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_NegTwoToFraction);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_NegTwoToFraction);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleNaNAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Nan);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Nan);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleUintMaxPlusOneAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_UintMaxPlusOne);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_UintMaxPlusOne);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleIntMaxPlusOneAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_IntMaxPlusOne);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_IntMaxPlusOne);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleIntMinMinusOneAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_MinIntMinusOne);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_MinIntMinusOne);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetFloatNaNAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Nan32);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Nan32);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetFloatNegTwoToFractionAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Float32NegTwoToFraction);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Float32NegTwoToFraction);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleZeroAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Zero);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Zero);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetFloatZeroAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::k_Float32Zero);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::k_Float32Zero);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetNativeFloatArrayMissingItemAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNativeFloatArray::MissingItem);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNativeFloatArray::MissingItem);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetExponentMaskAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::Constants::ExponentMask);
|
|
|
+ return ShiftAddr(this, &Js::Constants::ExponentMask);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetMantissaMaskAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::Constants::MantissaMask);
|
|
|
+ return ShiftAddr(this, &Js::Constants::MantissaMask);
|
|
|
}
|
|
|
|
|
|
#if _M_IX86 || _M_AMD64
|
|
|
@@ -227,134 +227,134 @@ ThreadContextInfo::GetMantissaMaskAddr() const
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86AbsMaskF4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_ABS_MASK_F4);
|
|
|
+ return ShiftAddr(this, &X86_ABS_MASK_F4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86AbsMaskD2Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_ABS_MASK_D2);
|
|
|
+ return ShiftAddr(this, &X86_ABS_MASK_D2);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86NegMaskF4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_NEG_MASK_F4);
|
|
|
+ return ShiftAddr(this, &X86_NEG_MASK_F4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86NegMaskD2Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_NEG_MASK_D2);
|
|
|
+ return ShiftAddr(this, &X86_NEG_MASK_D2);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86AllNegOnesAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_ALL_NEG_ONES);
|
|
|
+ return ShiftAddr(this, &X86_ALL_NEG_ONES);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86AllNegOnesF4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_ALL_NEG_ONES_F4);
|
|
|
+ return ShiftAddr(this, &X86_ALL_NEG_ONES_F4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86AllZerosAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_ALL_ZEROS);
|
|
|
+ return ShiftAddr(this, &X86_ALL_ZEROS);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86AllOnesF4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_ALL_ONES_F4);
|
|
|
+ return ShiftAddr(this, &X86_ALL_ONES_F4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86LowBytesMaskAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_LOWBYTES_MASK);
|
|
|
+ return ShiftAddr(this, &X86_LOWBYTES_MASK);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86HighBytesMaskAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_HIGHBYTES_MASK);
|
|
|
+ return ShiftAddr(this, &X86_HIGHBYTES_MASK);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86DoubleWordSignBitsAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_DWORD_SIGNBITS);
|
|
|
+ return ShiftAddr(this, &X86_DWORD_SIGNBITS);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86WordSignBitsAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_WORD_SIGNBITS);
|
|
|
+ return ShiftAddr(this, &X86_WORD_SIGNBITS);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86ByteSignBitsAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_BYTE_SIGNBITS);
|
|
|
+ return ShiftAddr(this, &X86_BYTE_SIGNBITS);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86TwoPower32F4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_TWO_32_F4);
|
|
|
+ return ShiftAddr(this, &X86_TWO_32_F4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86TwoPower31F4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_TWO_31_F4);
|
|
|
+ return ShiftAddr(this, &X86_TWO_31_F4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86TwoPower31I4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_TWO_31_I4);
|
|
|
+ return ShiftAddr(this, &X86_TWO_31_I4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86NegTwoPower31F4Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_NEG_TWO_31_F4);
|
|
|
+ return ShiftAddr(this, &X86_NEG_TWO_31_F4);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetX86FourLanesMaskAddr(uint8 minorityLane) const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &X86_4LANES_MASKS[minorityLane]);
|
|
|
+ return ShiftAddr(this, &X86_4LANES_MASKS[minorityLane]);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleIntMinAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::DOUBLE_INT_MIN);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::DOUBLE_INT_MIN);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetDoubleTwoTo31Addr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, &Js::JavascriptNumber::DOUBLE_TWO_TO_31);
|
|
|
+ return ShiftAddr(this, &Js::JavascriptNumber::DOUBLE_TWO_TO_31);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetStringReplaceNameAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, Js::Constants::StringReplace);
|
|
|
+ return ShiftAddr(this, Js::Constants::StringReplace);
|
|
|
}
|
|
|
|
|
|
intptr_t
|
|
|
ThreadContextInfo::GetStringMatchNameAddr() const
|
|
|
{
|
|
|
- return SHIFT_ADDR(this, Js::Constants::StringMatch);
|
|
|
+ return ShiftAddr(this, Js::Constants::StringMatch);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
@@ -487,46 +487,26 @@ ThreadContextInfo::IsClosed()
|
|
|
return m_isClosed;
|
|
|
}
|
|
|
|
|
|
-intptr_t SHIFT_ADDR(const ThreadContextInfo*const context, intptr_t address)
|
|
|
+uintptr_t ShiftAddr(const ThreadContextInfo * const context, uintptr_t address)
|
|
|
{
|
|
|
#if ENABLE_OOP_NATIVE_CODEGEN
|
|
|
- Assert(AutoSystemInfo::Data.IsJscriptModulePointer((void*)address));
|
|
|
ptrdiff_t diff = 0;
|
|
|
- if (JITManager::GetJITManager()->IsJITServer())
|
|
|
- {
|
|
|
- diff = ((ServerThreadContext*)context)->GetChakraBaseAddressDifference();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- diff = ((ThreadContext*)context)->GetChakraBaseAddressDifference();
|
|
|
- }
|
|
|
- return (intptr_t)address + diff;
|
|
|
-#else
|
|
|
- return address;
|
|
|
-#endif
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-intptr_t SHIFT_CRT_ADDR(const ThreadContextInfo*const context, intptr_t address)
|
|
|
-{
|
|
|
-#if ENABLE_OOP_NATIVE_CODEGEN
|
|
|
if (AutoSystemInfo::Data.IsJscriptModulePointer((void*)address))
|
|
|
{
|
|
|
- // the function is compiled to chakra.dll, or statically linked to crt
|
|
|
- return SHIFT_ADDR(context, address);
|
|
|
+ diff = context->GetChakraBaseAddressDifference();
|
|
|
}
|
|
|
- ptrdiff_t diff = 0;
|
|
|
- if (JITManager::GetJITManager()->IsJITServer())
|
|
|
+ else if(AutoSystemInfo::Data.IsCRTModulePointer(address))
|
|
|
{
|
|
|
- diff = ((ServerThreadContext*)context)->GetCRTBaseAddressDifference();
|
|
|
+ diff = context->GetCRTBaseAddressDifference();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- diff = ((ThreadContext*)context)->GetCRTBaseAddressDifference();
|
|
|
+ AssertOrFailFast(UNREACHED);
|
|
|
}
|
|
|
+
|
|
|
return (intptr_t)address + diff;
|
|
|
#else
|
|
|
return address;
|
|
|
#endif
|
|
|
-}
|
|
|
|
|
|
+}
|