js/src/jit/LOpcodes.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
     2  * vim: set ts=8 sts=4 et sw=4 tw=99:
     3  * This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #ifndef jit_LOpcodes_h
     8 #define jit_LOpcodes_h
    10 #define LIR_COMMON_OPCODE_LIST(_)   \
    11     _(Label)                        \
    12     _(Nop)                          \
    13     _(OsiPoint)                     \
    14     _(MoveGroup)                    \
    15     _(Integer)                      \
    16     _(Pointer)                      \
    17     _(Double)                       \
    18     _(Float32)                      \
    19     _(Value)                        \
    20     _(CloneLiteral)                 \
    21     _(Parameter)                    \
    22     _(Callee)                       \
    23     _(TableSwitch)                  \
    24     _(TableSwitchV)                 \
    25     _(Goto)                         \
    26     _(NewArray)                     \
    27     _(ArraySplice)                  \
    28     _(NewObject)                    \
    29     _(NewSlots)                     \
    30     _(NewDeclEnvObject)             \
    31     _(NewCallObject)                \
    32     _(NewSingletonCallObject)       \
    33     _(NewStringObject)              \
    34     _(NewPar)                       \
    35     _(NewDenseArrayPar)             \
    36     _(NewCallObjectPar)             \
    37     _(NewDerivedTypedObject)        \
    38     _(AbortPar)                     \
    39     _(InitElem)                     \
    40     _(InitElemGetterSetter)         \
    41     _(MutateProto)                  \
    42     _(InitProp)                     \
    43     _(InitPropGetterSetter)         \
    44     _(CheckOverRecursed)            \
    45     _(CheckOverRecursedPar)         \
    46     _(DefVar)                       \
    47     _(DefFun)                       \
    48     _(CallKnown)                    \
    49     _(CallGeneric)                  \
    50     _(CallNative)                   \
    51     _(ApplyArgsGeneric)             \
    52     _(Bail)                         \
    53     _(GetDynamicName)               \
    54     _(FilterArgumentsOrEvalS)       \
    55     _(FilterArgumentsOrEvalV)       \
    56     _(CallDirectEvalS)              \
    57     _(CallDirectEvalV)              \
    58     _(StackArgT)                    \
    59     _(StackArgV)                    \
    60     _(CreateThis)                   \
    61     _(CreateThisWithProto)          \
    62     _(CreateThisWithTemplate)       \
    63     _(CreateArgumentsObject)        \
    64     _(GetArgumentsObjectArg)        \
    65     _(SetArgumentsObjectArg)        \
    66     _(ReturnFromCtor)               \
    67     _(ComputeThis)                  \
    68     _(LoadArrowThis)                \
    69     _(BitNotI)                      \
    70     _(BitNotV)                      \
    71     _(BitOpI)                       \
    72     _(BitOpV)                       \
    73     _(ShiftI)                       \
    74     _(UrshD)                        \
    75     _(Return)                       \
    76     _(Throw)                        \
    77     _(Phi)                          \
    78     _(TestIAndBranch)               \
    79     _(TestDAndBranch)               \
    80     _(TestFAndBranch)               \
    81     _(TestVAndBranch)               \
    82     _(TestOAndBranch)               \
    83     _(FunctionDispatch)             \
    84     _(TypeObjectDispatch)           \
    85     _(Compare)                      \
    86     _(CompareAndBranch)             \
    87     _(CompareD)                     \
    88     _(CompareDAndBranch)            \
    89     _(CompareF)                     \
    90     _(CompareFAndBranch)            \
    91     _(CompareS)                     \
    92     _(CompareStrictS)               \
    93     _(CompareB)                     \
    94     _(CompareBAndBranch)            \
    95     _(CompareV)                     \
    96     _(CompareVAndBranch)            \
    97     _(CompareVM)                    \
    98     _(BitAndAndBranch)              \
    99     _(IsNullOrLikeUndefined)        \
   100     _(IsNullOrLikeUndefinedAndBranch)\
   101     _(EmulatesUndefined)            \
   102     _(EmulatesUndefinedAndBranch)   \
   103     _(MinMaxI)                      \
   104     _(MinMaxD)                      \
   105     _(NegI)                         \
   106     _(NegD)                         \
   107     _(NegF)                         \
   108     _(AbsI)                         \
   109     _(AbsD)                         \
   110     _(AbsF)                         \
   111     _(SqrtD)                        \
   112     _(SqrtF)                        \
   113     _(Atan2D)                       \
   114     _(Hypot)                        \
   115     _(PowI)                         \
   116     _(PowD)                         \
   117     _(Random)                       \
   118     _(MathFunctionD)                \
   119     _(MathFunctionF)                \
   120     _(NotI)                         \
   121     _(NotD)                         \
   122     _(NotF)                         \
   123     _(NotO)                         \
   124     _(NotV)                         \
   125     _(AddI)                         \
   126     _(SubI)                         \
   127     _(MulI)                         \
   128     _(MathD)                        \
   129     _(MathF)                        \
   130     _(ModD)                         \
   131     _(BinaryV)                      \
   132     _(Concat)                       \
   133     _(ConcatPar)                    \
   134     _(CharCodeAt)                   \
   135     _(FromCharCode)                 \
   136     _(StringSplit)                  \
   137     _(Int32ToDouble)                \
   138     _(Float32ToDouble)              \
   139     _(DoubleToFloat32)              \
   140     _(Int32ToFloat32)               \
   141     _(ValueToDouble)                \
   142     _(ValueToInt32)                 \
   143     _(ValueToFloat32)               \
   144     _(DoubleToInt32)                \
   145     _(Float32ToInt32)               \
   146     _(TruncateDToInt32)             \
   147     _(TruncateFToInt32)             \
   148     _(BooleanToString)              \
   149     _(IntToString)                  \
   150     _(DoubleToString)               \
   151     _(PrimitiveToString)            \
   152     _(Start)                        \
   153     _(OsrEntry)                     \
   154     _(OsrValue)                     \
   155     _(OsrScopeChain)                \
   156     _(OsrReturnValue)               \
   157     _(OsrArgumentsObject)           \
   158     _(RegExp)                       \
   159     _(RegExpExec)                   \
   160     _(RegExpTest)                   \
   161     _(RegExpReplace)                \
   162     _(StringReplace)                \
   163     _(Lambda)                       \
   164     _(LambdaArrow)                  \
   165     _(LambdaForSingleton)           \
   166     _(LambdaPar)                    \
   167     _(ImplicitThis)                 \
   168     _(Slots)                        \
   169     _(Elements)                     \
   170     _(ConvertElementsToDoubles)     \
   171     _(MaybeToDoubleElement)         \
   172     _(LoadSlotV)                    \
   173     _(LoadSlotT)                    \
   174     _(StoreSlotV)                   \
   175     _(StoreSlotT)                   \
   176     _(GuardShape)                   \
   177     _(GuardObjectType)              \
   178     _(GuardObjectIdentity)          \
   179     _(GuardClass)                   \
   180     _(GuardThreadExclusive)         \
   181     _(TypeBarrierV)                 \
   182     _(TypeBarrierO)                 \
   183     _(MonitorTypes)                 \
   184     _(PostWriteBarrierO)            \
   185     _(PostWriteBarrierV)            \
   186     _(InitializedLength)            \
   187     _(SetInitializedLength)         \
   188     _(NeuterCheck)                  \
   189     _(BoundsCheck)                  \
   190     _(BoundsCheckRange)             \
   191     _(BoundsCheckLower)             \
   192     _(LoadElementV)                 \
   193     _(LoadElementT)                 \
   194     _(LoadElementHole)              \
   195     _(StoreElementV)                \
   196     _(StoreElementT)                \
   197     _(ArrayPopShiftV)               \
   198     _(ArrayPopShiftT)               \
   199     _(ArrayPushV)                   \
   200     _(ArrayPushT)                   \
   201     _(ArrayConcat)                  \
   202     _(StoreElementHoleV)            \
   203     _(StoreElementHoleT)            \
   204     _(LoadTypedArrayElement)        \
   205     _(LoadTypedArrayElementHole)    \
   206     _(LoadTypedArrayElementStatic)  \
   207     _(StoreTypedArrayElement)       \
   208     _(StoreTypedArrayElementHole)   \
   209     _(StoreTypedArrayElementStatic) \
   210     _(EffectiveAddress)             \
   211     _(ClampIToUint8)                \
   212     _(ClampDToUint8)                \
   213     _(ClampVToUint8)                \
   214     _(LoadFixedSlotV)               \
   215     _(LoadFixedSlotT)               \
   216     _(StoreFixedSlotV)              \
   217     _(StoreFixedSlotT)              \
   218     _(FunctionEnvironment)          \
   219     _(ForkJoinContext)              \
   220     _(ForkJoinGetSlice)             \
   221     _(GetPropertyCacheV)            \
   222     _(GetPropertyCacheT)            \
   223     _(GetPropertyPolymorphicV)      \
   224     _(GetPropertyPolymorphicT)      \
   225     _(GetElementCacheV)             \
   226     _(GetElementCacheT)             \
   227     _(BindNameCache)                \
   228     _(CallGetProperty)              \
   229     _(GetNameCache)                 \
   230     _(CallGetIntrinsicValue)        \
   231     _(CallsiteCloneCache)           \
   232     _(CallGetElement)               \
   233     _(CallSetElement)               \
   234     _(CallInitElementArray)         \
   235     _(CallSetProperty)              \
   236     _(CallDeleteProperty)           \
   237     _(CallDeleteElement)           \
   238     _(SetPropertyCacheV)            \
   239     _(SetPropertyCacheT)            \
   240     _(SetElementCacheV)             \
   241     _(SetElementCacheT)             \
   242     _(SetPropertyPolymorphicV)      \
   243     _(SetPropertyPolymorphicT)      \
   244     _(CallIteratorStart)            \
   245     _(IteratorStart)                \
   246     _(IteratorNext)                 \
   247     _(IteratorMore)                 \
   248     _(IteratorEnd)                  \
   249     _(ArrayLength)                  \
   250     _(SetArrayLength)               \
   251     _(TypedArrayLength)             \
   252     _(TypedArrayElements)           \
   253     _(TypedObjectElements)          \
   254     _(SetTypedObjectOffset)         \
   255     _(StringLength)                 \
   256     _(ArgumentsLength)              \
   257     _(GetFrameArgument)             \
   258     _(SetFrameArgumentT)            \
   259     _(SetFrameArgumentC)            \
   260     _(SetFrameArgumentV)            \
   261     _(RunOncePrologue)              \
   262     _(Rest)                         \
   263     _(RestPar)                      \
   264     _(TypeOfV)                      \
   265     _(ToIdV)                        \
   266     _(Floor)                        \
   267     _(FloorF)                       \
   268     _(Round)                        \
   269     _(RoundF)                       \
   270     _(In)                           \
   271     _(InArray)                      \
   272     _(InstanceOfO)                  \
   273     _(InstanceOfV)                  \
   274     _(CallInstanceOf)               \
   275     _(InterruptCheck)               \
   276     _(InterruptCheckImplicit)       \
   277     _(ProfilerStackOp)              \
   278     _(GetDOMProperty)               \
   279     _(GetDOMMember)                 \
   280     _(SetDOMProperty)               \
   281     _(CallDOMNative)                \
   282     _(IsCallable)                   \
   283     _(HaveSameClass)                \
   284     _(HasClass)                      \
   285     _(AsmJSLoadHeap)                \
   286     _(AsmJSStoreHeap)               \
   287     _(AsmJSLoadGlobalVar)           \
   288     _(AsmJSStoreGlobalVar)          \
   289     _(AsmJSLoadFFIFunc)             \
   290     _(AsmJSParameter)               \
   291     _(AsmJSReturn)                  \
   292     _(AsmJSVoidReturn)              \
   293     _(AsmJSPassStackArg)            \
   294     _(AsmJSCall)                    \
   295     _(InterruptCheckPar)            \
   296     _(RecompileCheck)               \
   297     _(AssertRangeI)                 \
   298     _(AssertRangeD)                 \
   299     _(AssertRangeF)                 \
   300     _(AssertRangeV)
   302 #if defined(JS_CODEGEN_X86)
   303 # include "jit/x86/LOpcodes-x86.h"
   304 #elif defined(JS_CODEGEN_X64)
   305 # include "jit/x64/LOpcodes-x64.h"
   306 #elif defined(JS_CODEGEN_ARM)
   307 # include "jit/arm/LOpcodes-arm.h"
   308 #elif defined(JS_CODEGEN_MIPS)
   309 # include "jit/mips/LOpcodes-mips.h"
   310 #else
   311 # error "Unknown architecture!"
   312 #endif
   314 #define LIR_OPCODE_LIST(_)          \
   315     LIR_COMMON_OPCODE_LIST(_)       \
   316     LIR_CPU_OPCODE_LIST(_)
   318 #endif /* jit_LOpcodes_h */

mercurial