569 frame.reg[INS_A(instruction)] = RB; |
570 frame.reg[INS_A(instruction)] = RB; |
570 break; |
571 break; |
571 case OP_JMP: |
572 case OP_JMP: |
572 frame.pc+=INS_sBx(instruction); |
573 frame.pc+=INS_sBx(instruction); |
573 break; |
574 break; |
|
575 case OP_CONCAT: |
|
576 var A = INS_A(instruction); |
|
577 var B = INS_B(instruction); |
|
578 var C = INS_C(instruction); |
|
579 var values = []; |
|
580 for(var i = B; i<=C; i++) |
|
581 values.push(frame.reg[i].value); |
|
582 frame.reg[A] = new LValue(this, "string", values.join()); |
574 case OP_ADD: |
583 case OP_ADD: |
575 var RB = RK(frame, INS_B(instruction)); |
584 var RB = RK(frame, INS_B(instruction)); |
576 var RC = RK(frame, INS_C(instruction)); |
585 var RC = RK(frame, INS_C(instruction)); |
577 frame.reg[INS_A(instruction)] = RB.add(RC); |
586 frame.reg[INS_A(instruction)] = RB.add(RC); |
578 break; |
587 break; |