]> Nishi Git Mirror - gwion.git/commitdiff
:art: Make sure NoOp does nothing
authorfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 15 Oct 2019 22:18:00 +0000 (00:18 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 15 Oct 2019 22:18:00 +0000 (00:18 +0200)
It was already the case, setting all bits to 0 making a RegSetImm op.

include/instr.h
include/opcode.h
opcode.txt
src/vm/vm.c
src/vm/vm_code.c

index 6ad3d4ed1f76eb385305c3dd8f069fbe2b617df1..9a545cbe797851197496548ad4f1551f58990386 100644 (file)
@@ -58,7 +58,6 @@ INSTR(PopArrayClass);
 
 INSTR(DotTmpl);
 INSTR(GTmpl);
-#define NoOp (f_instr)256
 
 struct dottmpl_ {
   size_t len;
index 3d25e1ea9cb8ad26db2aa25abb6e54b7c4742381..55eac482bdcd8e163eb780a875aca21f033f1348 100644 (file)
@@ -171,6 +171,7 @@ enum {
   eGcEnd,
   eGack,
   eGack3,
+  eNoOp,
   eDotTmplVal,
   eOP_MAX,
   eEOC,
@@ -346,6 +347,7 @@ enum {
 #define  GcEnd               (f_instr)eGcEnd
 #define  Gack                (f_instr)eGack
 #define  Gack3               (f_instr)eGack3
+#define  NoOp                (f_instr)eNoOp
 #define  DotTmplVal          (f_instr)eDotTmplVal
 #define  OP_MAX              (f_instr)eOP_MAX
 #define  EOC                 (f_instr)eEOC
index ceef501c2596c6806291ca41bdfe21661a933e57..3924a3222a90ca55475f357d957d8201668e79ef 100644 (file)
@@ -168,6 +168,7 @@ GcAdd
 GcEnd
 Gack
 Gack3
+NoOp
 DotTmplVal
 OP_MAX
 EOC
index 5de6ce2b6cf8ceac1dbafbb8049837dd0c6c7908..a4fc9d5226bd2018d94b30c97247ba5e6f6783fb 100644 (file)
@@ -312,7 +312,7 @@ ANN void vm_run(const VM* vm) { // lgtm [cpp/use-of-goto]
     &&staticint, &&staticfloat, &&staticother,
     &&dotfunc, &&dotstaticfunc, &&pushstaticcode,
     &&gcini, &&gcadd, &&gcend,
-    &&gack, &&gack3, &&regpushimm, &&other, &&eoc
+    &&gack, &&gack3, &&noop, &&regpushimm, &&other, &&eoc
   };
   const Shreduler s = vm->shreduler;
   register VM_Shred shred;
@@ -817,6 +817,7 @@ gack:
   goto in;
 gack3:
   gw_out("\n");
+noop:
   DISPATCH();
 other:
   VM_OUT
index 0fb3546d9e4750767b3b3db681e69be02d5b48f1..248293358a2b746704485f57f00b3343db80441e 100644 (file)
@@ -56,7 +56,7 @@ ANN static m_bit* tobytecode(MemPool p, const VM_Code code) {
     if(instr->opcode < eGack)
       memcpy(ptr + i*BYTECODE_SZ, instr, BYTECODE_SZ);
     else {
-      if(instr->execute == NoOp) {
+      if(instr->execute == NoOp) { // RegSetImm
         memset(ptr + i*BYTECODE_SZ, 0, BYTECODE_SZ);
         continue;
       }