Improve opcode naming.

This commit is contained in:
Tor Andersson
2014-01-12 13:39:48 +01:00
parent 50d5cb95ab
commit 1122d1f647
3 changed files with 38 additions and 29 deletions
+10 -13
View File
@@ -124,16 +124,16 @@ static void clval(JF, js_Ast *exp)
{
switch (exp->type) {
case AST_IDENTIFIER:
emitstring(J, F, OP_VAR, exp->string);
emitstring(J, F, OP_AVAR, exp->string);
break;
case EXP_INDEX:
cexp(J, F, exp->a);
cexp(J, F, exp->b);
emit(J, F, OP_INDEX);
emit(J, F, OP_AINDEX);
break;
case EXP_MEMBER:
cexp(J, F, exp->a);
emitstring(J, F, OP_MEMBER, exp->b->string);
emitstring(J, F, OP_AMEMBER, exp->b->string);
break;
default:
jsC_error(J, exp, "invalid l-value in assignment");
@@ -144,7 +144,7 @@ static void clval(JF, js_Ast *exp)
static void assignop(JF, js_Ast *exp, int opcode)
{
clval(J, F, exp->a);
emit(J, F, OP_DUPLOAD);
emit(J, F, OP_DUP_LOAD);
cexp(J, F, exp->b);
emit(J, F, opcode);
emit(J, F, OP_STORE);
@@ -156,8 +156,7 @@ static void cexp(JF, js_Ast *exp)
switch (exp->type) {
case AST_IDENTIFIER:
emitstring(J, F, OP_VAR, exp->string);
emit(J, F, OP_LOAD);
emitstring(J, F, OP_LOADVAR, exp->string);
break;
case AST_NUMBER: emitnumber(J, F, OP_CONST, exp->number); break;
@@ -181,14 +180,12 @@ static void cexp(JF, js_Ast *exp)
case EXP_INDEX:
cexp(J, F, exp->a);
cexp(J, F, exp->b);
emit(J, F, OP_INDEX);
emit(J, F, OP_LOAD);
emit(J, F, OP_LOADINDEX);
break;
case EXP_MEMBER:
cexp(J, F, exp->a);
emitstring(J, F, OP_MEMBER, exp->b->string);
emit(J, F, OP_LOAD);
emitstring(J, F, OP_LOADMEMBER, exp->b->string);
break;
case EXP_CALL:
@@ -281,7 +278,7 @@ static void cvardec(JF, js_Ast *vardec)
cexp(J, F, vardec->b);
else
emit(J, F, OP_UNDEF);
emitstring(J, F, OP_DEFVAR, vardec->a->string);
emitstring(J, F, OP_VARDEC, vardec->a->string);
}
static void cvardeclist(JF, js_Ast *list)
@@ -346,9 +343,9 @@ static void cstm(JF, js_Ast *stm)
case STM_WITH:
cexp(J, F, stm->a);
emit(J, F, OP_PUSHWITH);
emit(J, F, OP_WITH);
cstm(J, F, stm->b);
emit(J, F, OP_POPWITH);
emit(J, F, OP_ENDWITH);
break;
// switch
+22 -13
View File
@@ -3,6 +3,9 @@
enum
{
OP_POP,
OP_DUP,
OP_CONST,
OP_UNDEF,
OP_NULL,
@@ -15,17 +18,24 @@ enum
OP_OBJECT,
OP_OBJECTPUT,
OP_DEFVAR,
OP_VAR,
OP_INDEX,
OP_MEMBER,
OP_VARDEC,
OP_FUNDEC,
OP_FUNEXP,
OP_LOADVAR,
OP_LOADINDEX,
OP_LOADMEMBER,
OP_AVAR,
OP_AINDEX,
OP_AMEMBER,
OP_LOAD,
OP_DUPLOAD,
OP_DUP_LOAD,
OP_STORE,
OP_CALL,
OP_TCALL,
OP_NEW,
OP_CLOSURE,
OP_DELETE,
OP_VOID,
@@ -63,18 +73,17 @@ enum
OP_DIV,
OP_MOD,
OP_JUMP,
OP_JTRUE,
OP_JFALSE,
OP_TRY,
OP_THROW,
OP_RETURN,
OP_PUSHWITH,
OP_POPWITH,
OP_DEBUGGER,
OP_POP,
OP_WITH,
OP_ENDWITH,
OP_JUMP,
OP_JTRUE,
OP_JFALSE,
};
struct js_Function
+6 -3
View File
@@ -620,13 +620,16 @@ void jsC_dumpfunction(js_State *J, js_Function *fun)
switch (c) {
case OP_CONST:
case OP_OBJECTPUT:
case OP_DEFVAR:
case OP_VAR:
case OP_MEMBER:
case OP_VARDEC:
case OP_LOADVAR:
case OP_LOADMEMBER:
case OP_AVAR:
case OP_AMEMBER:
pc(' ');
jsC_dumpvalue(J, fun->klist[*p++]);
break;
case OP_CALL:
case OP_TCALL:
case OP_NEW:
printf(" %d", *p++);
break;