v8  3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lithium-x64.h File Reference
#include "hydrogen.h"
#include "lithium-allocator.h"
#include "lithium.h"
#include "safepoint-table.h"
#include "utils.h"
Include dependency graph for lithium-x64.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  LInstruction
 
class  LTemplateInstruction< R, I, T >
 
class  LGap
 
class  LInstructionGap
 
class  LGoto
 
class  LLazyBailout
 
class  LDeoptimize
 
class  LLabel
 
class  LParameter
 
class  LCallStub
 
class  LUnknownOSRValue
 
class  LControlInstruction< I, T >
 
class  LWrapReceiver
 
class  LApplyArguments
 
class  LAccessArgumentsAt
 
class  LArgumentsLength
 
class  LArgumentsElements
 
class  LModI
 
class  LDivI
 
class  LMathFloorOfDiv
 
class  LMulI
 
class  LCmpIDAndBranch
 
class  LUnaryMathOperation
 
class  LCmpObjectEqAndBranch
 
class  LCmpConstantEqAndBranch
 
class  LIsNilAndBranch
 
class  LIsObjectAndBranch
 
class  LIsStringAndBranch
 
class  LIsSmiAndBranch
 
class  LIsUndetectableAndBranch
 
class  LStringCompareAndBranch
 
class  LHasInstanceTypeAndBranch
 
class  LGetCachedArrayIndex
 
class  LHasCachedArrayIndexAndBranch
 
class  LClassOfTestAndBranch
 
class  LCmpT
 
class  LIn
 
class  LInstanceOf
 
class  LInstanceOfKnownGlobal
 
class  LBoundsCheck
 
class  LBitI
 
class  LShiftI
 
class  LSubI
 
class  LConstantI
 
class  LConstantD
 
class  LConstantT
 
class  LBranch
 
class  LCmpMapAndBranch
 
class  LJSArrayLength
 
class  LFixedArrayBaseLength
 
class  LMapEnumLength
 
class  LElementsKind
 
class  LValueOf
 
class  LDateField
 
class  LThrow
 
class  LBitNotI
 
class  LAddI
 
class  LMathMinMax
 
class  LPower
 
class  LRandom
 
class  LArithmeticD
 
class  LArithmeticT
 
class  LReturn
 
class  LLoadNamedField
 
class  LLoadNamedFieldPolymorphic
 
class  LLoadNamedGeneric
 
class  LLoadFunctionPrototype
 
class  LLoadElements
 
class  LLoadExternalArrayPointer
 
class  LLoadKeyedFastElement
 
class  LLoadKeyedFastDoubleElement
 
class  LLoadKeyedSpecializedArrayElement
 
class  LLoadKeyedGeneric
 
class  LLoadGlobalCell
 
class  LLoadGlobalGeneric
 
class  LStoreGlobalCell
 
class  LStoreGlobalGeneric
 
class  LLoadContextSlot
 
class  LStoreContextSlot
 
class  LPushArgument
 
class  LDrop
 
class  LThisFunction
 
class  LContext
 
class  LOuterContext
 
class  LDeclareGlobals
 
class  LGlobalObject
 
class  LGlobalReceiver
 
class  LCallConstantFunction
 
class  LInvokeFunction
 
class  LCallKeyed
 
class  LCallNamed
 
class  LCallFunction
 
class  LCallGlobal
 
class  LCallKnownGlobal
 
class  LCallNew
 
class  LCallRuntime
 
class  LInteger32ToDouble
 
class  LUint32ToDouble
 
class  LNumberTagI
 
class  LNumberTagU
 
class  LNumberTagD
 
class  LDoubleToI
 
class  LTaggedToI
 
class  LSmiTag
 
class  LNumberUntagD
 
class  LSmiUntag
 
class  LStoreNamedField
 
class  LStoreNamedGeneric
 
class  LStoreKeyedFastElement
 
class  LStoreKeyedFastDoubleElement
 
class  LStoreKeyedSpecializedArrayElement
 
class  LStoreKeyedGeneric
 
class  LTransitionElementsKind
 
class  LStringAdd
 
class  LStringCharCodeAt
 
class  LStringCharFromCode
 
class  LStringLength
 
class  LCheckFunction
 
class  LCheckInstanceType
 
class  LCheckMaps
 
class  LCheckPrototypeMaps
 
class  LCheckSmi
 
class  LClampDToUint8
 
class  LClampIToUint8
 
class  LClampTToUint8
 
class  LCheckNonSmi
 
class  LAllocateObject
 
class  LFastLiteral
 
class  LArrayLiteral
 
class  LObjectLiteral
 
class  LRegExpLiteral
 
class  LFunctionLiteral
 
class  LToFastProperties
 
class  LTypeof
 
class  LTypeofIsAndBranch
 
class  LIsConstructCallAndBranch
 
class  LDeleteProperty
 
class  LOsrEntry
 
class  LStackCheck
 
class  LForInPrepareMap
 
class  LForInCacheArray
 
class  LCheckMapValue
 
class  LLoadFieldByIndex
 
class  LPlatformChunk
 
class  BASE_EMBEDDED< Visitor >
 

Namespaces

 v8
 
 v8::internal
 

Macros

#define LITHIUM_ALL_INSTRUCTION_LIST(V)
 
#define LITHIUM_CONCRETE_INSTRUCTION_LIST(V)
 
#define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)
 
#define DECLARE_HYDROGEN_ACCESSOR(type)
 
#define DECLARE_OPCODE(type)   k##type,
 
#define DECLARE_PREDICATE(type)   bool Is##type() const { return opcode() == k##type; }
 
#define DECLARE_DO(type)   LInstruction* Do##type(H##type* node);
 

Macro Definition Documentation

#define DECLARE_CONCRETE_INSTRUCTION (   type,
  mnemonic 
)
Value:
virtual Opcode opcode() const { return LInstruction::k##type; } \
virtual void CompileToNative(LCodeGen* generator); \
virtual const char* Mnemonic() const { return mnemonic; } \
static L##type* cast(LInstruction* instr) { \
ASSERT(instr->Is##type()); \
return reinterpret_cast<L##type*>(instr); \
}
#define ASSERT(condition)
Definition: checks.h:270
activate correct semantics for inheriting readonliness enable harmony semantics for typeof enable harmony enable harmony proxies enable all harmony harmony_scoping harmony_proxies harmony_scoping tracks arrays with only smi values automatically unbox arrays of doubles use crankshaft use hydrogen range analysis use hydrogen global value numbering use function inlining maximum number of AST nodes considered for a single inlining loop invariant code motion print statistics for hydrogen trace generated IR for specified phases trace register allocator trace range analysis trace representation types environment for every instruction put a break point before deoptimizing polymorphic inlining perform array bounds checks elimination use dead code elimination trace on stack replacement optimize closures cache optimized code for closures functions with arguments object loop weight for representation inference allow uint32 values on optimize frames if they are used only in safe operations track parallel recompilation enable all profiler experiments number of stack frames inspected by the profiler call recompile stub directly when self optimizing trigger profiler ticks based on counting instead of timing weight back edges by jump distance for interrupt triggering percentage of ICs that must have type info to allow optimization watch_ic_patching retry_self_opt interrupt_at_exit extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of SAHF instruction if enable use of VFP3 instructions if available this implies enabling ARMv7 and VFP2 enable use of VFP2 instructions if available enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of MIPS FPU instructions if expose natives in global object expose gc extension number of stack frames to capture disable builtin natives files print a stack trace if an assertion failure occurs use random jit cookie to mask large constants trace lazy optimization use adaptive optimizations prepare for turning on always opt minimum length for automatic enable preparsing maximum number of optimization attempts before giving up cache prototype transitions automatically set the debug break flag when debugger commands are in the queue always cause a debug break before aborting maximum length of function source code printed in a stack trace max size of the new max size of the old max size of executable always perform global GCs print one trace line following each garbage collection do not print trace line after scavenger collection print more details following each garbage collection print amount of external allocated memory after each time it is adjusted flush code that we expect not to use again before full gc do incremental marking steps track object counts and memory usage use caching Perform compaction on every full GC Never perform compaction on full GC testing only Compact code space on full incremental collections Default seed for initializing random generator(0, the default, means to use system random).") DEFINE_bool(use_verbose_printer

Definition at line 191 of file lithium-x64.h.

#define DECLARE_DO (   type)    LInstruction* Do##type(H##type* node);

Definition at line 2435 of file lithium-x64.h.

#define DECLARE_HYDROGEN_ACCESSOR (   type)
Value:
H##type* hydrogen() const { \
return H##type::cast(hydrogen_value()); \
}

Definition at line 201 of file lithium-x64.h.

#define DECLARE_OPCODE (   type)    k##type,

Definition at line 224 of file lithium-x64.h.

#define DECLARE_PREDICATE (   type)    bool Is##type() const { return opcode() == k##type; }

Definition at line 233 of file lithium-x64.h.

#define LITHIUM_ALL_INSTRUCTION_LIST (   V)
Value:
V(ControlInstruction) \
V(Call) \
#define LITHIUM_CONCRETE_INSTRUCTION_LIST(V)
Definition: lithium-x64.h:49

Definition at line 43 of file lithium-x64.h.

#define LITHIUM_CONCRETE_INSTRUCTION_LIST (   V)

Definition at line 49 of file lithium-x64.h.