lvm.js

changeset 90
40edbc05fbb9
parent 89
a9cef9e01154
child 91
298efa276aff
equal deleted inserted replaced
89:a9cef9e01154 90:40edbc05fbb9
14 var OP_ADD = 12; 14 var OP_ADD = 12;
15 var OP_SUB = 13; 15 var OP_SUB = 13;
16 var OP_JMP = 22; 16 var OP_JMP = 22;
17 var OP_EQ = 23; 17 var OP_EQ = 23;
18 var OP_LT = 24; 18 var OP_LT = 24;
19 var OP_LE = 25;
19 var OP_TEST = 26; 20 var OP_TEST = 26;
20 var OP_TESTSET = 27; 21 var OP_TESTSET = 27;
21 var OP_CALL = 28; 22 var OP_CALL = 28;
22 var OP_RETURN = 30; 23 var OP_RETURN = 30;
23 var OP_FORLOOP = 31; 24 var OP_FORLOOP = 31;
589 var RB = RK(frame, INS_B(instruction)); 590 var RB = RK(frame, INS_B(instruction));
590 var RC = RK(frame, INS_C(instruction)); 591 var RC = RK(frame, INS_C(instruction));
591 if(RB.value < RC.value != (A!=0)) 592 if(RB.value < RC.value != (A!=0))
592 frame.pc++; 593 frame.pc++;
593 break; 594 break;
595 case OP_LE:
596 var A = INS_A(instruction);
597 var RB = RK(frame, INS_B(instruction));
598 var RC = RK(frame, INS_C(instruction));
599 if(RB.value <= RC.value != (A!=0))
600 frame.pc++;
601 break;
594 default: 602 default:
595 throw "Unhandled opcode: "+INS_OPCODE(instruction); 603 throw "Unhandled opcode: "+INS_OPCODE(instruction);
596 } 604 }
597 } 605 }
598 } 606 }

mercurial