Sat, 03 Jan 2015 20:18:00 +0100
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 */