| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- #pragma once
- #include <wchar.h>
- // =================
- // Runtime Includes
- // =================
- #include "Runtime.h"
- #include "ByteCode/StatementReader.h"
- #include "Language/EHBailoutData.h"
- #include "Language/AsmJsTypes.h"
- #include "Language/AsmJsModule.h"
- #include "Language/ProfilingHelpers.h"
- #include "Language/FunctionCodeGenRuntimeData.h"
- #include "Language/JavascriptMathOperators.h"
- #include "Language/JavascriptMathOperators.inl"
- #include "Language/JavascriptStackWalker.h"
- #include "Language/CodeGenRecyclableData.h"
- #include "Library/JavascriptGenerator.h"
- #include "Library/JavascriptRegularExpression.h"
- #include "Library/StackScriptFunction.h"
- #include "Library/JavascriptProxy.h"
- #include "Library/JavascriptGeneratorFunction.h"
- #include "Language/InterpreterStackFrame.h"
- #include "Library/StackScriptFunction.h"
- // SIMD
- #include "Language/SimdOps.h"
- // =================
- // Common Includes
- // =================
- #include "DataStructures/Pair.h"
- #include "DataStructures/HashTable.h"
- // =================
- //
- // Defines
- //
- #define Fatal() Js::Throw::FatalInternalError()
- // By default, do encode large user constants for security.
- #ifndef MD_ENCODE_LG_CONSTS
- #define MD_ENCODE_LG_CONSTS true
- #endif
- //
- // Forward refs
- //
- class Func;
- class Loop;
- //
- // Typedefs
- //
- const int32 IntConstMax = INT_MAX;
- const int32 IntConstMin = INT_MIN;
- const int32 Int8ConstMax = _I8_MAX;
- const int32 Int8ConstMin = _I8_MIN;
- const int32 Int16ConstMax = _I16_MAX;
- const int32 Int16ConstMin = _I16_MIN;
- const int32 Int32ConstMax = _I32_MAX;
- const int32 Int32ConstMin = _I32_MIN;
- const int32 Uint8ConstMax = _UI8_MAX;
- const int32 Uint8ConstMin = 0;
- const int32 Uint16ConstMax = _UI16_MAX;
- const int32 Uint16ConstMin = 0;
- #if defined(_M_X64) || defined(_M_ARM32_OR_ARM64)
- // Arm VFPv3-D32 has 32 double registers and 16 int registers total 48.
- // Arm64 has 32 vector registers and 32 int registers total 64.
- // Amd64 has 16 int and 16 xmm registers and slot for NOREG makes it 33 hence 64 bit version
- // for Amd64 & Arm
- typedef BVUnit64 BitVector;
- #else
- // x86 has only 8 int registers & 8 xmm registers
- // 32 bit vector is sufficient to address all the registers
- typedef BVUnit32 BitVector;
- #endif
- #if DBG_DUMP || defined(ENABLE_IR_VIEWER)
- enum IRDumpFlags
- {
- IRDumpFlags_None = 0x0,
- IRDumpFlags_AsmDumpMode = 0x1,
- IRDumpFlags_SimpleForm = 0x2,
- IRDumpFlags_SkipEndLine = 0x4,
- IRDumpFlags_SkipByteCodeOffset = 0x8,
- };
- #endif
- //
- // BackEnd includes
- //
- #include "JITTimeProfileInfo.h"
- #include "JITRecyclableObject.h"
- #include "FixedFieldInfo.h"
- #include "JITTimePolymorphicInlineCache.h"
- #include "JITTimePolymorphicInlineCacheInfo.h"
- #include "CodeGenWorkItemType.h"
- #include "CodeGenAllocators.h"
- #include "JITTimeConstructorCache.h"
- #include "JITTypeHandler.h"
- #include "JITType.h"
- #include "EquivalentTypeSet.h"
- #include "ObjTypeSpecFldInfo.h"
- #include "FunctionCodeGenJitTimeData.h"
- #include "ServerScriptContext.h"
- #include "JITOutput.h"
- #include "AsmJsJITInfo.h"
- #include "FunctionJITRuntimeInfo.h"
- #include "JITTimeFunctionBody.h"
- #include "FunctionJITTimeInfo.h"
- #include "JITTimeWorkItem.h"
- #include "NativeCodeData.h"
- #include "IRType.h"
- #include "md.h"
- #include "../Runtime/ByteCode/BackendOpCodeAttr.h"
- #include "BackendOpCodeAttrAsmJs.h"
- #include "JnHelperMethod.h"
- #include "Reg.h"
- #include "Sym.h"
- #include "SymTable.h"
- #include "IR.h"
- #include "Opnd.h"
- #include "IntConstMath.h"
- #include "IntOverflowDoesNotMatterRange.h"
- #include "IntConstantBounds.h"
- #include "ValueRelativeOffset.h"
- #include "IntBounds.h"
- #include "InductionVariable.h"
- #include "ValueInfo.h"
- #include "GlobOptBlockData.h"
- #include "GlobOpt.h"
- #include "GlobOptIntBounds.h"
- #include "GlobOptArrays.h"
- #include "QueuedFullJitWorkItem.h"
- #include "CodeGenWorkItem.h"
- #include "SimpleJitProfilingHelpers.h"
- #if defined(_M_X64)
- #include "PrologEncoder.h"
- #endif
- #include "Func.h"
- #include "TempTracker.h"
- #include "FlowGraph.h"
- #include "PDataManager.h"
- #include "ServerThreadContext.h"
- #include "CaseNode.h"
- #include "SwitchIRBuilder.h"
- #include "IRBuilder.h"
- #include "IRBuilderAsmJs.h"
- #include "BackwardPass.h"
- #include "Lower.h"
- #include "Security.h"
- #include "Peeps.h"
- #include "LinearScan.h"
- #include "SimpleLayout.h"
- #include "Encoder.h"
- #include "EmitBuffer.h"
- #include "InterpreterThunkEmitter.h"
- #include "JITThunkEmitter.h"
- #include "InliningHeuristics.h"
- #include "InliningDecider.h"
- #include "Inline.h"
- #include "NativeCodeGenerator.h"
- #include "Region.h"
- #include "BailOut.h"
- #include "InlineeFrameInfo.h"
- #include "IRViewer.h"
- #if DBG
- # include "DbCheckPostLower.h"
- #endif
- //
- // Inlines
- //
- #include "Sym.inl"
- #include "IR.inl"
- #include "Opnd.inl"
|