DELETE_PROP

git-svn-id: svn://10.0.0.236/trunk@73521 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
beard%netscape.com
2000-06-29 17:14:56 +00:00
parent aa7664867d
commit 1ef1eb154f
2 changed files with 38 additions and 0 deletions

View File

@@ -18,6 +18,7 @@
COMPARE_LT, /* dest, source1, source2 */
COMPARE_NE, /* dest, source1, source2 */
DEBUGGER, /* drop to the debugger */
DELETE_PROP, /* dest, object, prop name */
DIVIDE, /* dest, source1, source2 */
ELEM_XCR, /* dest, base, index, value */
GET_ELEMENT, /* dest, base, index */
@@ -233,6 +234,22 @@
}
};
class DeleteProp : public Instruction_3<TypedRegister, TypedRegister, const StringAtom*> {
public:
/* dest, object, prop name */
DeleteProp (TypedRegister aOp1, TypedRegister aOp2, const StringAtom* aOp3) :
Instruction_3<TypedRegister, TypedRegister, const StringAtom*>
(DELETE_PROP, aOp1, aOp2, aOp3) {};
virtual Formatter& print(Formatter& f) {
f << opcodeNames[DELETE_PROP] << "\t" << "R" << mOp1.first << ", " << "R" << mOp2.first << ", " << "'" << *mOp3 << "'";
return f;
}
virtual Formatter& printOperands(Formatter& f, const JSValues& registers) {
f << "R" << mOp1.first << '=' << registers[mOp1.first] << ", " << "R" << mOp2.first << '=' << registers[mOp2.first];
return f;
}
};
class Divide : public Arithmetic {
public:
/* dest, source1, source2 */
@@ -992,6 +1009,7 @@
"COMPARE_LT ",
"COMPARE_NE ",
"DEBUGGER ",
"DELETE_PROP ",
"DIVIDE ",
"ELEM_XCR ",
"GET_ELEMENT ",
@@ -1047,3 +1065,4 @@
};
#endif

View File

@@ -18,6 +18,7 @@
COMPARE_LT, /* dest, source1, source2 */
COMPARE_NE, /* dest, source1, source2 */
DEBUGGER, /* drop to the debugger */
DELETE_PROP, /* dest, object, prop name */
DIVIDE, /* dest, source1, source2 */
ELEM_XCR, /* dest, base, index, value */
GET_ELEMENT, /* dest, base, index */
@@ -233,6 +234,22 @@
}
};
class DeleteProp : public Instruction_3<TypedRegister, TypedRegister, const StringAtom*> {
public:
/* dest, object, prop name */
DeleteProp (TypedRegister aOp1, TypedRegister aOp2, const StringAtom* aOp3) :
Instruction_3<TypedRegister, TypedRegister, const StringAtom*>
(DELETE_PROP, aOp1, aOp2, aOp3) {};
virtual Formatter& print(Formatter& f) {
f << opcodeNames[DELETE_PROP] << "\t" << "R" << mOp1.first << ", " << "R" << mOp2.first << ", " << "'" << *mOp3 << "'";
return f;
}
virtual Formatter& printOperands(Formatter& f, const JSValues& registers) {
f << "R" << mOp1.first << '=' << registers[mOp1.first] << ", " << "R" << mOp2.first << '=' << registers[mOp2.first];
return f;
}
};
class Divide : public Arithmetic {
public:
/* dest, source1, source2 */
@@ -992,6 +1009,7 @@
"COMPARE_LT ",
"COMPARE_NE ",
"DEBUGGER ",
"DELETE_PROP ",
"DIVIDE ",
"ELEM_XCR ",
"GET_ELEMENT ",
@@ -1047,3 +1065,4 @@
};
#endif