Bug 469927 - TM: much slower than interpreter with short loop with |let| (r=mrbkap, a=sayrer).

This commit is contained in:
Brendan Eich 2008-12-18 01:31:15 -08:00
Родитель 133445f5b2
Коммит 89ad60579e
1 изменённых файлов: 14 добавлений и 3 удалений

Просмотреть файл

@ -8286,13 +8286,21 @@ TraceRecorder::record_JSOP_TYPEOFEXPR()
JS_REQUIRES_STACK bool
TraceRecorder::record_JSOP_ENTERBLOCK()
{
return false;
JSScript* script = cx->fp->script;
JSFrameRegs& regs = *cx->fp->regs;
JSObject* obj;
JS_GET_SCRIPT_OBJECT(script, GET_FULL_INDEX(0), obj);
LIns* void_ins = INS_CONST(JSVAL_TO_BOOLEAN(JSVAL_VOID));
for (int i = 0, n = OBJ_BLOCK_COUNT(cx, obj); i < n; i++)
stack(i, void_ins);
return true;
}
JS_REQUIRES_STACK bool
TraceRecorder::record_JSOP_LEAVEBLOCK()
{
return false;
return true;
}
JS_REQUIRES_STACK bool
@ -8345,7 +8353,10 @@ TraceRecorder::record_JSOP_ENUMCONSTELEM()
JS_REQUIRES_STACK bool
TraceRecorder::record_JSOP_LEAVEBLOCKEXPR()
{
return false;
LIns* v_ins = stack(-1);
int n = -1 - GET_UINT16(cx->fp->regs->pc);
stack(n, v_ins);
return true;
}
JS_REQUIRES_STACK bool