mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
Bug 1148970 - Check for possibly incomplete type sets when double checking the correctness of argument type set information, r=jandem.
This commit is contained in:
parent
385fbe4a65
commit
eae3e3f79c
@ -3535,6 +3535,18 @@ CodeGenerator::generateArgumentsChecks(bool bailout)
|
||||
Label success;
|
||||
masm.jump(&success);
|
||||
masm.bind(&miss);
|
||||
|
||||
// Check for cases where the type set guard might have missed due to
|
||||
// changing object groups.
|
||||
for (uint32_t i = info.startArgSlot(); i < info.endArgSlot(); i++) {
|
||||
Label skip;
|
||||
Address addr(StackPointer, ArgToStackOffset((i - info.startArgSlot()) * sizeof(Value)));
|
||||
masm.branchTestObject(Assembler::NotEqual, addr, &skip);
|
||||
Register obj = masm.extractObject(addr, temp);
|
||||
masm.guardTypeSetMightBeIncomplete(obj, temp, &success);
|
||||
masm.bind(&skip);
|
||||
}
|
||||
|
||||
masm.assumeUnreachable("Argument check fail.");
|
||||
masm.bind(&success);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user