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;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
static void
|
||||
PrintObjectCallback(JSContext *cx, void *data, void *thing,
|
||||
size_t traceKind, size_t thingSize)
|
||||
@ -2252,6 +2253,7 @@ PrintObjectCallback(JSContext *cx, void *data, void *thing,
|
||||
TypeObject *object = (TypeObject *) thing;
|
||||
object->print(cx);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
TypeCompartment::print(JSContext *cx)
|
||||
@ -2269,7 +2271,10 @@ TypeCompartment::print(JSContext *cx)
|
||||
}
|
||||
|
||||
#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
|
||||
|
||||
printf("Counts: ");
|
||||
|
@ -575,7 +575,7 @@ struct AllocationSiteKey {
|
||||
typedef AllocationSiteKey Lookup;
|
||||
|
||||
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) {
|
||||
|
@ -1757,12 +1757,6 @@ do { \
|
||||
NULL, NULL); \
|
||||
if (!proto) \
|
||||
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); \
|
||||
if (!ctor || \
|
||||
!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).
|
||||
// 2) The result is definitely a double (the result type set can include
|
||||
// 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;
|
||||
MaybeRegisterID typeReg, tempReg;
|
||||
JSValueType type = knownPushedType(0);
|
||||
bool maybeReadFloat = (atype == TypedArray::TYPE_FLOAT32 ||
|
||||
atype == TypedArray::TYPE_FLOAT64 ||
|
||||
atype == TypedArray::TYPE_UINT32);
|
||||
if (maybeReadFloat && type == JSVAL_TYPE_DOUBLE && !hasTypeBarriers(PC)) {
|
||||
if (maybeReadFloat && type == JSVAL_TYPE_DOUBLE) {
|
||||
dataReg = frame.allocFPReg();
|
||||
// Need an extra reg to convert uint32 to double.
|
||||
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
|
||||
// be int32 (due to reading out-of-bound values) or if there's a
|
||||
// type barrier.
|
||||
if (maybeReadFloat || type != JSVAL_TYPE_INT32 || hasTypeBarriers(PC))
|
||||
if (maybeReadFloat || type != JSVAL_TYPE_INT32)
|
||||
typeReg = frame.allocReg();
|
||||
}
|
||||
|
||||
@ -1969,7 +1967,8 @@ mjit::Compiler::jsop_getelem(bool isCall)
|
||||
|
||||
#ifdef JS_METHODJIT_TYPED_ARRAY
|
||||
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.
|
||||
int atype = types->getTypedArrayType(cx);
|
||||
if (atype != TypedArray::TYPE_MAX) {
|
||||
|
Loading…
Reference in New Issue
Block a user