lvm.js

changeset 99
633e414a496c
parent 98
14d2400ec059
child 100
d20586b6104c
equal deleted inserted replaced
98:14d2400ec059 99:633e414a496c
11 var OP_SETTABLE = 9; 11 var OP_SETTABLE = 9;
12 var OP_NEWTABLE = 10; 12 var OP_NEWTABLE = 10;
13 var OP_SELF = 11; 13 var OP_SELF = 11;
14 var OP_ADD = 12; 14 var OP_ADD = 12;
15 var OP_SUB = 13; 15 var OP_SUB = 13;
16 var OP_DIV = 15;
16 var OP_JMP = 22; 17 var OP_JMP = 22;
17 var OP_EQ = 23; 18 var OP_EQ = 23;
18 var OP_LT = 24; 19 var OP_LT = 24;
19 var OP_LE = 25; 20 var OP_LE = 25;
20 var OP_TEST = 26; 21 var OP_TEST = 26;
578 case OP_SUB: 579 case OP_SUB:
579 var RB = RK(frame, INS_B(instruction)); 580 var RB = RK(frame, INS_B(instruction));
580 var RC = RK(frame, INS_C(instruction)); 581 var RC = RK(frame, INS_C(instruction));
581 frame.reg[INS_A(instruction)] = new LValue(this, "number", RB.value - RC.value); 582 frame.reg[INS_A(instruction)] = new LValue(this, "number", RB.value - RC.value);
582 break; 583 break;
584 case OP_DIV:
585 var RB = RK(frame, INS_B(instruction));
586 var RC = RK(frame, INS_C(instruction));
587 frame.reg[INS_A(instruction)] = new LValue(this, "number", RB.value / RC.value);
588 break;
583 case OP_EQ: 589 case OP_EQ:
584 var A = INS_A(instruction); 590 var A = INS_A(instruction);
585 var RB = RK(frame, INS_B(instruction)); 591 var RB = RK(frame, INS_B(instruction));
586 var RC = RK(frame, INS_C(instruction)); 592 var RC = RK(frame, INS_C(instruction));
587 if(RB.equals(RC) != (A!=0)) 593 if(RB.equals(RC) != (A!=0))

mercurial