mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
[INFER] Fix build breaks, orange.
This commit is contained in:
parent
6cedc75bac
commit
baf48d73e8
@ -2245,6 +2245,7 @@ ScriptAnalysis::addTypeBarrier(JSContext *cx, const jsbytecode *pc, TypeSet *tar
|
|||||||
code.typeBarriers = barrier;
|
code.typeBarriers = barrier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
static void
|
static void
|
||||||
PrintObjectCallback(JSContext *cx, void *data, void *thing,
|
PrintObjectCallback(JSContext *cx, void *data, void *thing,
|
||||||
size_t traceKind, size_t thingSize)
|
size_t traceKind, size_t thingSize)
|
||||||
@ -2252,6 +2253,7 @@ PrintObjectCallback(JSContext *cx, void *data, void *thing,
|
|||||||
TypeObject *object = (TypeObject *) thing;
|
TypeObject *object = (TypeObject *) thing;
|
||||||
object->print(cx);
|
object->print(cx);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
TypeCompartment::print(JSContext *cx)
|
TypeCompartment::print(JSContext *cx)
|
||||||
@ -2269,7 +2271,10 @@ TypeCompartment::print(JSContext *cx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
IterateCells(cx, compartment, gc::FINALIZE_TYPE_OBJECT, NULL, PrintObjectCallback);
|
{
|
||||||
|
AutoUnlockGC unlock(cx->runtime);
|
||||||
|
IterateCells(cx, compartment, gc::FINALIZE_TYPE_OBJECT, NULL, PrintObjectCallback);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
printf("Counts: ");
|
printf("Counts: ");
|
||||||
|
@ -575,7 +575,7 @@ struct AllocationSiteKey {
|
|||||||
typedef AllocationSiteKey Lookup;
|
typedef AllocationSiteKey Lookup;
|
||||||
|
|
||||||
static inline uint32 hash(AllocationSiteKey key) {
|
static inline uint32 hash(AllocationSiteKey key) {
|
||||||
return (uint32) (key.script->code + key.offset) ^ key.kind;
|
return (uint32) size_t(key.script->code + key.offset) ^ key.kind;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool match(const AllocationSiteKey &a, const AllocationSiteKey &b) {
|
static inline bool match(const AllocationSiteKey &a, const AllocationSiteKey &b) {
|
||||||
|
@ -1757,12 +1757,6 @@ do { \
|
|||||||
NULL, NULL); \
|
NULL, NULL); \
|
||||||
if (!proto) \
|
if (!proto) \
|
||||||
return NULL; \
|
return NULL; \
|
||||||
AddTypePropertyId(cx, proto, JSID_VOID, \
|
|
||||||
types::Type::Int32Type()); \
|
|
||||||
if (_typedArray::ArrayElementTypeMayBeDouble()) { \
|
|
||||||
AddTypePropertyId(cx, proto, JSID_VOID, \
|
|
||||||
types::Type::DoubleType()); \
|
|
||||||
} \
|
|
||||||
JSObject *ctor = JS_GetConstructor(cx, proto); \
|
JSObject *ctor = JS_GetConstructor(cx, proto); \
|
||||||
if (!ctor || \
|
if (!ctor || \
|
||||||
!JS_DefineProperty(cx, ctor, "BYTES_PER_ELEMENT", \
|
!JS_DefineProperty(cx, ctor, "BYTES_PER_ELEMENT", \
|
||||||
|
@ -1869,15 +1869,13 @@ mjit::Compiler::jsop_getelem_typed(int atype)
|
|||||||
// can't load into an FP-register for other arrays).
|
// can't load into an FP-register for other arrays).
|
||||||
// 2) The result is definitely a double (the result type set can include
|
// 2) The result is definitely a double (the result type set can include
|
||||||
// other types after reading out-of-bound values).
|
// other types after reading out-of-bound values).
|
||||||
// 3) There's no type barrier (we need separate type and data regs for
|
|
||||||
// type barriers).
|
|
||||||
AnyRegisterID dataReg;
|
AnyRegisterID dataReg;
|
||||||
MaybeRegisterID typeReg, tempReg;
|
MaybeRegisterID typeReg, tempReg;
|
||||||
JSValueType type = knownPushedType(0);
|
JSValueType type = knownPushedType(0);
|
||||||
bool maybeReadFloat = (atype == TypedArray::TYPE_FLOAT32 ||
|
bool maybeReadFloat = (atype == TypedArray::TYPE_FLOAT32 ||
|
||||||
atype == TypedArray::TYPE_FLOAT64 ||
|
atype == TypedArray::TYPE_FLOAT64 ||
|
||||||
atype == TypedArray::TYPE_UINT32);
|
atype == TypedArray::TYPE_UINT32);
|
||||||
if (maybeReadFloat && type == JSVAL_TYPE_DOUBLE && !hasTypeBarriers(PC)) {
|
if (maybeReadFloat && type == JSVAL_TYPE_DOUBLE) {
|
||||||
dataReg = frame.allocFPReg();
|
dataReg = frame.allocFPReg();
|
||||||
// Need an extra reg to convert uint32 to double.
|
// Need an extra reg to convert uint32 to double.
|
||||||
if (atype == TypedArray::TYPE_UINT32)
|
if (atype == TypedArray::TYPE_UINT32)
|
||||||
@ -1888,7 +1886,7 @@ mjit::Compiler::jsop_getelem_typed(int atype)
|
|||||||
// float arrays. Also allocate a type register if the result may not
|
// float arrays. Also allocate a type register if the result may not
|
||||||
// be int32 (due to reading out-of-bound values) or if there's a
|
// be int32 (due to reading out-of-bound values) or if there's a
|
||||||
// type barrier.
|
// type barrier.
|
||||||
if (maybeReadFloat || type != JSVAL_TYPE_INT32 || hasTypeBarriers(PC))
|
if (maybeReadFloat || type != JSVAL_TYPE_INT32)
|
||||||
typeReg = frame.allocReg();
|
typeReg = frame.allocReg();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1969,7 +1967,8 @@ mjit::Compiler::jsop_getelem(bool isCall)
|
|||||||
|
|
||||||
#ifdef JS_METHODJIT_TYPED_ARRAY
|
#ifdef JS_METHODJIT_TYPED_ARRAY
|
||||||
if (obj->mightBeType(JSVAL_TYPE_OBJECT) &&
|
if (obj->mightBeType(JSVAL_TYPE_OBJECT) &&
|
||||||
!types->hasObjectFlags(cx, types::OBJECT_FLAG_NON_TYPED_ARRAY)) {
|
!types->hasObjectFlags(cx, types::OBJECT_FLAG_NON_TYPED_ARRAY) &&
|
||||||
|
pushedTypeSet(0)->baseFlags() != 0) {
|
||||||
// Inline typed array path.
|
// Inline typed array path.
|
||||||
int atype = types->getTypedArrayType(cx);
|
int atype = types->getTypedArrayType(cx);
|
||||||
if (atype != TypedArray::TYPE_MAX) {
|
if (atype != TypedArray::TYPE_MAX) {
|
||||||
|
Loading…
Reference in New Issue
Block a user