mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1147581 - Remove the now defunct TMPSLOT mechanism. (r=jorendorff)
This commit is contained in:
parent
4f1d17f0fe
commit
3d289f5ee0
@ -209,19 +209,6 @@ void
|
||||
BytecodeEmitter::updateDepth(ptrdiff_t target)
|
||||
{
|
||||
jsbytecode* pc = code(target);
|
||||
JSOp op = (JSOp) *pc;
|
||||
const JSCodeSpec* cs = &js_CodeSpec[op];
|
||||
|
||||
if (cs->format & JOF_TMPSLOT_MASK) {
|
||||
/*
|
||||
* An opcode may temporarily consume stack space during execution.
|
||||
* Account for this in maxStackDepth separately from uses/defs here.
|
||||
*/
|
||||
uint32_t depth = (uint32_t) stackDepth +
|
||||
((cs->format & JOF_TMPSLOT_MASK) >> JOF_TMPSLOT_SHIFT);
|
||||
if (depth > maxStackDepth)
|
||||
maxStackDepth = depth;
|
||||
}
|
||||
|
||||
int nuses = StackUses(nullptr, pc);
|
||||
int ndefs = StackDefs(nullptr, pc);
|
||||
|
@ -76,16 +76,8 @@ enum {
|
||||
JOF_CHECKSTRICT = 1 << 20, /* Op can only be generated in strict mode */
|
||||
JOF_INVOKE = 1 << 21, /* JSOP_CALL, JSOP_FUNCALL, JSOP_FUNAPPLY,
|
||||
JSOP_NEW, JSOP_EVAL */
|
||||
JOF_TMPSLOT = 1 << 22, /* interpreter uses extra temporary slot
|
||||
to root intermediate objects besides
|
||||
the slots opcode uses */
|
||||
JOF_TMPSLOT2 = 2 << 22, /* interpreter uses extra 2 temporary slot
|
||||
besides the slots opcode uses */
|
||||
JOF_TMPSLOT3 = 3 << 22, /* interpreter uses extra 3 temporary slot
|
||||
besides the slots opcode uses */
|
||||
JOF_TMPSLOT_SHIFT = 22,
|
||||
JOF_TMPSLOT_MASK = JS_BITMASK(2) << JOF_TMPSLOT_SHIFT,
|
||||
|
||||
/* 1 << 22 is unused */
|
||||
/* 1 << 23 is unused */
|
||||
/* 1 << 24 is unused */
|
||||
JOF_GNAME = 1 << 25, /* predicted global name */
|
||||
JOF_TYPESET = 1 << 26, /* has an entry in a script's type sets */
|
||||
|
@ -505,7 +505,7 @@
|
||||
* Operands: uint32_t nameIndex
|
||||
* Stack: obj => obj[name]
|
||||
*/ \
|
||||
macro(JSOP_GETPROP, 53, "getprop", NULL, 5, 1, 1, JOF_ATOM|JOF_PROP|JOF_TYPESET|JOF_TMPSLOT3) \
|
||||
macro(JSOP_GETPROP, 53, "getprop", NULL, 5, 1, 1, JOF_ATOM|JOF_PROP|JOF_TYPESET) \
|
||||
/*
|
||||
* Pops the top two values on the stack as 'val' and 'obj' and performs
|
||||
* 'obj.prop = val', pushing 'val' back onto the stack.
|
||||
@ -1080,7 +1080,7 @@
|
||||
* Operands:
|
||||
* Stack: obj, ctor => (obj instanceof ctor)
|
||||
*/ \
|
||||
macro(JSOP_INSTANCEOF,114,js_instanceof_str,js_instanceof_str,1,2,1,JOF_BYTE|JOF_LEFTASSOC|JOF_TMPSLOT) \
|
||||
macro(JSOP_INSTANCEOF,114,js_instanceof_str,js_instanceof_str,1,2,1,JOF_BYTE|JOF_LEFTASSOC) \
|
||||
\
|
||||
/*
|
||||
* Invokes debugger.
|
||||
@ -1297,7 +1297,7 @@
|
||||
* Operands: uint8_t n
|
||||
* Stack: v[n], v[n-1], ..., v[1], v[0] => v[n-1], ..., v[1], v[0], v[n]
|
||||
*/ \
|
||||
macro(JSOP_PICK, 133, "pick", NULL, 2, 0, 0, JOF_UINT8|JOF_TMPSLOT2) \
|
||||
macro(JSOP_PICK, 133, "pick", NULL, 2, 0, 0, JOF_UINT8) \
|
||||
\
|
||||
/*
|
||||
* This no-op appears at the top of the bytecode for a 'TryStatement'.
|
||||
@ -1594,7 +1594,7 @@
|
||||
* Operands: uint32_t nameIndex
|
||||
* Stack: obj => obj[name]
|
||||
*/ \
|
||||
macro(JSOP_CALLPROP, 184,"callprop", NULL, 5, 1, 1, JOF_ATOM|JOF_PROP|JOF_TYPESET|JOF_TMPSLOT3) \
|
||||
macro(JSOP_CALLPROP, 184,"callprop", NULL, 5, 1, 1, JOF_ATOM|JOF_PROP|JOF_TYPESET) \
|
||||
\
|
||||
macro(JSOP_UNUSED185, 185,"unused185", NULL, 1, 0, 0, JOF_BYTE) \
|
||||
macro(JSOP_UNUSED186, 186,"unused186", NULL, 1, 0, 0, JOF_BYTE) \
|
||||
@ -1819,7 +1819,7 @@
|
||||
* Operands: uint32_t nameIndex
|
||||
* Stack: obj => obj['length']
|
||||
*/ \
|
||||
macro(JSOP_LENGTH, 217, "length", NULL, 5, 1, 1, JOF_ATOM|JOF_PROP|JOF_TYPESET|JOF_TMPSLOT3) \
|
||||
macro(JSOP_LENGTH, 217, "length", NULL, 5, 1, 1, JOF_ATOM|JOF_PROP|JOF_TYPESET) \
|
||||
\
|
||||
/*
|
||||
* Pushes a JS_ELEMENTS_HOLE value onto the stack, representing an omitted
|
||||
|
Loading…
Reference in New Issue
Block a user