mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
[JAEGER] Added JSOP_CALLARG, workaround for nmap asserts.
This commit is contained in:
parent
0691d6d766
commit
ff56c35cb8
@ -218,7 +218,7 @@ mjit::Compiler::finishThisUp()
|
||||
|
||||
for (size_t i = 0; i < script->length; i++) {
|
||||
Label L = jumpMap[i];
|
||||
if (analysis[i].visited) {
|
||||
if (analysis[i].safePoint) {
|
||||
JS_ASSERT(L.isValid());
|
||||
nmap[i] = (uint8 *)(result + masm.distanceOf(L));
|
||||
}
|
||||
@ -259,10 +259,9 @@ mjit::Compiler::generateMethod()
|
||||
JSOp op = JSOp(*PC);
|
||||
|
||||
OpcodeStatus &opinfo = analysis[PC];
|
||||
if (opinfo.nincoming) {
|
||||
opinfo.safePoint = true;
|
||||
if (opinfo.nincoming)
|
||||
frame.forgetEverything(opinfo.stackDepth);
|
||||
}
|
||||
opinfo.safePoint = true;
|
||||
jumpMap[uint32(PC - script->code)] = masm.label();
|
||||
|
||||
if (!opinfo.visited) {
|
||||
@ -478,12 +477,15 @@ mjit::Compiler::generateMethod()
|
||||
END_CASE(JSOP_POP)
|
||||
|
||||
BEGIN_CASE(JSOP_GETARG)
|
||||
BEGIN_CASE(JSOP_CALLARG)
|
||||
{
|
||||
RegisterID reg = frame.allocReg();
|
||||
uint32 index = GET_SLOTNO(PC);
|
||||
masm.loadPtr(Address(Assembler::FpReg, offsetof(JSStackFrame, argv)), reg);
|
||||
frame.freeReg(reg);
|
||||
frame.push(Address(reg, index * sizeof(Value)));
|
||||
if (op == JSOP_CALLARG)
|
||||
frame.push(NullTag());
|
||||
}
|
||||
END_CASE(JSOP_GETARG)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user