Skip to content

Commit 2e62edc

Browse files
Alexandru Marcamarc-mozilla
authored andcommitted
Revert "Bug 1703469: apply code formatting via Lando" for causing crashes @ js::jit::MGuardFunctionScript::getAliasSet
This reverts commit cd83389. Revert "Bug 1703469: Add more robust testcase r=jandem" This reverts commit 7cc7775. Revert "Bug 1703469: Fix PBL r=jandem" This reverts commit 0ed90c8. Revert "Bug 1703469: Inline script-guarded getters and setters r=jandem" This reverts commit 63b530b. Revert "Bug 1703469: Use JSScript instead of JSFunction in trial inlining r=jandem" This reverts commit 33cd9a6. Revert "Bug 1703469: Remove redundant function arg r=jandem" This reverts commit aaa3903. Revert "Bug 1703469: Guard on script instead of function for non-first getter/setters r=jandem" This reverts commit b1220f6. Revert "Bug 1703469: Move getter/setter helpers inside IRGenerator r=jandem" This reverts commit 237d510. Revert "Bug 1703469: Use operand for callee in scripted setters r=jandem" This reverts commit f55e9e6. Revert "Bug 1703469: Use operand for callee in scripted getters r=jandem" This reverts commit f4f5b7d.
1 parent aac5b84 commit 2e62edc

22 files changed

+293
-639
lines changed

js/src/builtin/TestingFunctions.cpp

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6764,40 +6764,6 @@ static bool ObjectAddress(JSContext* cx, unsigned argc, Value* vp) {
67646764
return ReturnStringCopy(cx, args, buffer);
67656765
}
67666766

6767-
static bool ScriptAddressForFunction(JSContext* cx, unsigned argc, Value* vp) {
6768-
CallArgs args = CallArgsFromVp(argc, vp);
6769-
6770-
if (js::SupportDifferentialTesting()) {
6771-
RootedObject callee(cx, &args.callee());
6772-
ReportUsageErrorASCII(cx, callee,
6773-
"Function unavailable in differential testing mode.");
6774-
return false;
6775-
}
6776-
6777-
if (args.length() != 1) {
6778-
RootedObject callee(cx, &args.callee());
6779-
ReportUsageErrorASCII(cx, callee, "Wrong number of arguments");
6780-
return false;
6781-
}
6782-
if (!args[0].isObject() || !args[0].toObject().is<JSFunction>()) {
6783-
RootedObject callee(cx, &args.callee());
6784-
ReportUsageErrorASCII(cx, callee, "Expected function");
6785-
return false;
6786-
}
6787-
6788-
RootedFunction function(cx, &args[0].toObject().as<JSFunction>());
6789-
if (!function->hasBytecode()) {
6790-
RootedObject callee(cx, &args.callee());
6791-
ReportUsageErrorASCII(cx, callee, "Expected non-lazy scripted function");
6792-
return false;
6793-
}
6794-
6795-
void* ptr = function->nonLazyScript();
6796-
args.rval().setPrivate(ptr);
6797-
6798-
return true;
6799-
}
6800-
68016767
static bool SharedAddress(JSContext* cx, unsigned argc, Value* vp) {
68026768
CallArgs args = CallArgsFromVp(argc, vp);
68036769

@@ -10549,10 +10515,6 @@ JS_FOR_WASM_FEATURES(WASM_FEATURE)
1054910515
" Return the current address of the object. For debugging only--this\n"
1055010516
" address may change during a moving GC."),
1055110517

10552-
JS_FN_HELP("scriptAddressForFunction", ScriptAddressForFunction, 1, 0,
10553-
"scriptAddressForFunction(fun)",
10554-
" Return the current address of a function's script."),
10555-
1055610518
JS_FN_HELP("sharedAddress", SharedAddress, 1, 0,
1055710519
"sharedAddress(obj)",
1055810520
" Return the address of the shared storage of a SharedArrayBuffer."),

js/src/jit-test/tests/cacheir/non-function-getters-2.js

Lines changed: 0 additions & 35 deletions
This file was deleted.

js/src/jit-test/tests/cacheir/non-function-getters.js

Lines changed: 0 additions & 41 deletions
This file was deleted.

js/src/jit/BaselineCacheIRCompiler.cpp

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -544,17 +544,19 @@ bool BaselineCacheIRCompiler::emitLoadDynamicSlotResult(ObjOperandId objId,
544544
}
545545

546546
bool BaselineCacheIRCompiler::emitCallScriptedGetterShared(
547-
ValOperandId receiverId, ObjOperandId calleeId, bool sameRealm,
547+
ValOperandId receiverId, uint32_t getterOffset, bool sameRealm,
548548
uint32_t nargsAndFlagsOffset, Maybe<uint32_t> icScriptOffset) {
549549
ValueOperand receiver = allocator.useValueRegister(masm, receiverId);
550-
Register callee = allocator.useRegister(masm, calleeId);
550+
Address getterAddr(stubAddress(getterOffset));
551551

552552
AutoScratchRegister code(allocator, masm);
553+
AutoScratchRegister callee(allocator, masm);
553554
AutoScratchRegister scratch(allocator, masm);
554555

555556
bool isInlined = icScriptOffset.isSome();
556557

557558
// First, retrieve raw jitcode for getter.
559+
masm.loadPtr(getterAddr, callee);
558560
if (isInlined) {
559561
FailurePath* failure;
560562
if (!addFailurePath(&failure)) {
@@ -619,19 +621,19 @@ bool BaselineCacheIRCompiler::emitCallScriptedGetterShared(
619621
}
620622

621623
bool BaselineCacheIRCompiler::emitCallScriptedGetterResult(
622-
ValOperandId receiverId, ObjOperandId calleeId, bool sameRealm,
624+
ValOperandId receiverId, uint32_t getterOffset, bool sameRealm,
623625
uint32_t nargsAndFlagsOffset) {
624626
JitSpew(JitSpew_Codegen, "%s", __FUNCTION__);
625627
Maybe<uint32_t> icScriptOffset = mozilla::Nothing();
626-
return emitCallScriptedGetterShared(receiverId, calleeId, sameRealm,
628+
return emitCallScriptedGetterShared(receiverId, getterOffset, sameRealm,
627629
nargsAndFlagsOffset, icScriptOffset);
628630
}
629631

630632
bool BaselineCacheIRCompiler::emitCallInlinedGetterResult(
631-
ValOperandId receiverId, ObjOperandId calleeId, uint32_t icScriptOffset,
633+
ValOperandId receiverId, uint32_t getterOffset, uint32_t icScriptOffset,
632634
bool sameRealm, uint32_t nargsAndFlagsOffset) {
633635
JitSpew(JitSpew_Codegen, "%s", __FUNCTION__);
634-
return emitCallScriptedGetterShared(receiverId, calleeId, sameRealm,
636+
return emitCallScriptedGetterShared(receiverId, getterOffset, sameRealm,
635637
nargsAndFlagsOffset,
636638
mozilla::Some(icScriptOffset));
637639
}
@@ -1649,9 +1651,10 @@ bool BaselineCacheIRCompiler::emitCallNativeSetter(
16491651
}
16501652

16511653
bool BaselineCacheIRCompiler::emitCallScriptedSetterShared(
1652-
ObjOperandId receiverId, ObjOperandId calleeId, ValOperandId rhsId,
1654+
ObjOperandId receiverId, uint32_t setterOffset, ValOperandId rhsId,
16531655
bool sameRealm, uint32_t nargsAndFlagsOffset,
16541656
Maybe<uint32_t> icScriptOffset) {
1657+
AutoScratchRegister callee(allocator, masm);
16551658
AutoScratchRegister scratch(allocator, masm);
16561659
#if defined(JS_CODEGEN_X86)
16571660
Register code = scratch;
@@ -1660,11 +1663,14 @@ bool BaselineCacheIRCompiler::emitCallScriptedSetterShared(
16601663
#endif
16611664

16621665
Register receiver = allocator.useRegister(masm, receiverId);
1663-
Register callee = allocator.useRegister(masm, calleeId);
1666+
Address setterAddr(stubAddress(setterOffset));
16641667
ValueOperand val = allocator.useValueRegister(masm, rhsId);
16651668

16661669
bool isInlined = icScriptOffset.isSome();
16671670

1671+
// First, load the callee.
1672+
masm.loadPtr(setterAddr, callee);
1673+
16681674
if (isInlined) {
16691675
// If we are calling a trial-inlined setter, guard that the
16701676
// target has a BaselineScript.
@@ -1746,20 +1752,21 @@ bool BaselineCacheIRCompiler::emitCallScriptedSetterShared(
17461752
}
17471753

17481754
bool BaselineCacheIRCompiler::emitCallScriptedSetter(
1749-
ObjOperandId receiverId, ObjOperandId calleeId, ValOperandId rhsId,
1755+
ObjOperandId receiverId, uint32_t setterOffset, ValOperandId rhsId,
17501756
bool sameRealm, uint32_t nargsAndFlagsOffset) {
17511757
JitSpew(JitSpew_Codegen, "%s", __FUNCTION__);
17521758
Maybe<uint32_t> icScriptOffset = mozilla::Nothing();
1753-
return emitCallScriptedSetterShared(receiverId, calleeId, rhsId, sameRealm,
1754-
nargsAndFlagsOffset, icScriptOffset);
1759+
return emitCallScriptedSetterShared(receiverId, setterOffset, rhsId,
1760+
sameRealm, nargsAndFlagsOffset,
1761+
icScriptOffset);
17551762
}
17561763

17571764
bool BaselineCacheIRCompiler::emitCallInlinedSetter(
1758-
ObjOperandId receiverId, ObjOperandId calleeId, ValOperandId rhsId,
1765+
ObjOperandId receiverId, uint32_t setterOffset, ValOperandId rhsId,
17591766
uint32_t icScriptOffset, bool sameRealm, uint32_t nargsAndFlagsOffset) {
17601767
JitSpew(JitSpew_Codegen, "%s", __FUNCTION__);
1761-
return emitCallScriptedSetterShared(receiverId, calleeId, rhsId, sameRealm,
1762-
nargsAndFlagsOffset,
1768+
return emitCallScriptedSetterShared(receiverId, setterOffset, rhsId,
1769+
sameRealm, nargsAndFlagsOffset,
17631770
mozilla::Some(icScriptOffset));
17641771
}
17651772

js/src/jit/BaselineCacheIRCompiler.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,11 @@ class MOZ_RAII BaselineCacheIRCompiler : public CacheIRCompiler {
118118
void emitAtomizeString(Register str, Register temp, Label* failure);
119119

120120
bool emitCallScriptedGetterShared(ValOperandId receiverId,
121-
ObjOperandId calleeId, bool sameRealm,
121+
uint32_t getterOffset, bool sameRealm,
122122
uint32_t nargsAndFlagsOffset,
123123
mozilla::Maybe<uint32_t> icScriptOffset);
124124
bool emitCallScriptedSetterShared(ObjOperandId receiverId,
125-
ObjOperandId calleeId, ValOperandId rhsId,
125+
uint32_t setterOffset, ValOperandId rhsId,
126126
bool sameRealm,
127127
uint32_t nargsAndFlagsOffset,
128128
mozilla::Maybe<uint32_t> icScriptOffset);

0 commit comments

Comments
 (0)