Registerify binary operators. Add register tracing to debugging output. (CVS 4686)
FossilOrigin-Name: 66396d2f0289e36b5fc0af5078c08d1b17f342ae
diff --git a/mkopcodeh.awk b/mkopcodeh.awk
index de04fab..b40b4fd 100644
--- a/mkopcodeh.awk
+++ b/mkopcodeh.awk
@@ -130,6 +130,7 @@
for(name in op){
x = op[name]
a0 = a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0
+ a8 = a9 = a10 = a11 = a12 = a13 = a14 = a15 = 0
if( jump[name] ) a0 = 1;
if( nopush[name]==0 ) a1 = 2;
if( out2_prerelease[name] ) a2 = 4;
@@ -138,24 +139,25 @@
if( in3[name] ) a5 = 32;
if( out2[name] ) a6 = 64;
if( out3[name] ) a7 = 128;
- bv[x] = a0+a1+a2+a3+a4+a5+a6+a7;
+ bv[x] = a0+a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14+a15;
}
print "\n"
print "/* Properties such as \"out2\" or \"jump\" that are specified in"
print "** comments following the "case" for each opcode in the vdbe.c"
print "** are encoded into bitvectors as follows:"
print "*/"
- print "#define OPFLG_JUMP 0x01 /* jump: P2 holds jmp target */"
- print "#define OPFLG_PUSH 0x02 /* ~no-push: Does not push */"
- print "#define OPFLG_OUT2_PRERELEASE 0x04 /* out2-prerelease: */"
- print "#define OPFLG_IN1 0x08 /* in1: P1 is an input */"
- print "#define OPFLG_IN2 0x10 /* in2: P2 is an input */"
- print "#define OPFLG_IN3 0x20 /* in3: P3 is an input */"
- print "#define OPFLG_OUT2 0x40 /* out2: P2 is an output */"
- print "#define OPFLG_OUT3 0x80 /* out3: P3 is an output */"
+ print "#define OPFLG_JUMP 0x0001 /* jump: P2 holds jmp target */"
+ print "#define OPFLG_PUSH 0x0002 /* ~no-push: Does not push */"
+ print "#define OPFLG_OUT2_PRERELEASE 0x0004 /* out2-prerelease: */"
+ print "#define OPFLG_IN1 0x0008 /* in1: P1 is an input */"
+ print "#define OPFLG_IN2 0x0010 /* in2: P2 is an input */"
+ print "#define OPFLG_IN3 0x0020 /* in3: P3 is an input */"
+ print "#define OPFLG_OUT2 0x0040 /* out2: P2 is an output */"
+ print "#define OPFLG_OUT3 0x0080 /* out3: P3 is an output */"
print "#define OPFLG_INITIALIZER {\\"
for(i=0; i<=max; i++){
- printf " 0x%02x,", bv[i]
+ if( i%8==0 ) printf("/* %3d */",i)
+ printf " 0x%04x,", bv[i]
if( i%8==7 ) printf("\\\n");
}
print "}"