no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | cybiko:bytecodeinstructionset [2009/11/27 17:54] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======Cybiko ByteCode Instruction Set====== | ||
+ | by Jeff Frohwein, v1.0127\\ | ||
+ | Some contributions by Robert Ang. | ||
+ | Text file download of the byte codes - {{bytecode.txt|Bytecode Instruction Set}} | ||
+ | |||
+ | < | ||
+ | * Indicates predicted, but not observed, instructions. | ||
+ | |||
+ | For all of the following, zz = xx + yy. | ||
+ | |||
+ | 00 seteq | ||
+ | 01 setne | ||
+ | 02 setlt | ||
+ | 03 setle | ||
+ | 04 setgt | ||
+ | 05 setge | ||
+ | 06 switch | ||
+ | 07 xx | ||
+ | 08 xx | ||
+ | 09 xx | ||
+ | 0a xx xx calln.s ? | ||
+ | 0b | ||
+ | 0c xx | ||
+ | 0d xx xx calls12.w ? | ||
+ | 0e xx xx calls3.w ? | ||
+ | 0f retf | ||
+ | 10 retn | ||
+ | 11 xx | ||
+ | 12 xx | ||
+ | 13 push | ||
+ | 14 pop | ||
+ | 15 move | ||
+ | 16 xx | ||
+ | 17 x1 x2 load.s x1x2 | ||
+ | 18 zz | ||
+ | 19 ? | ||
+ | 1a xx xx leag.u ? 0 | ||
+ | 1b loadic | ||
+ | 1c loadis | ||
+ | 1d loadil | ||
+ | 1e storeic | ||
+ | 1f storeis | ||
+ | 20 storeil | ||
+ | 21 zz | ||
+ | 22 zz | ||
+ | 23 zz | ||
+ | 24 ? | ||
+ | 25 ? | ||
+ | 26 ? | ||
+ | 27 zz | ||
+ | 28 zz | ||
+ | 29 zz | ||
+ | 2a ? | ||
+ | 2b ? | ||
+ | 2c ? | ||
+ | 2d inc1 | ||
+ | 2e inc2 | ||
+ | 2f inc4 | ||
+ | 30 dec1 | ||
+ | 31 dec2 | ||
+ | 32 dec4 | ||
+ | 33 lshift1 | ||
+ | 34 lshift2 | ||
+ | 35 rshift1 | ||
+ | 36 rshift2 | ||
+ | 37 add | ||
+ | 38 sub | ||
+ | 39 neg | ||
+ | 3a mul | ||
+ | 3b div | ||
+ | 3c mod | ||
+ | 3d and | ||
+ | 3e or | ||
+ | 3f xor | ||
+ | 40 x1 x2 jump.s x1x2 | ||
+ | 41 x1 x2 jumpz.s x1x2 | ||
+ | 42 x1 x2 jumpnz.s x1x2 | ||
+ | 43 load0 | ||
+ | 44 load1 | ||
+ | 45 x1 x2 x3 x4 load.l x1x2x3x4 | ||
+ | 46 xx add.c xx | ||
+ | 47 x1 x2 add.s x1x2 | ||
+ | 48 x1 x2 x3 x4 add.l x1x2x3x4 | ||
+ | 49 xx | ||
+ | 4a x1 x2 cmpe.s x1x2 | ||
+ | 4b x1 x2 x3 x4 cmpe.l x1x2x3x4 | ||
+ | 4c xx xx/x3 x4 calld12.w ? / .disp x3x4 | ||
+ | 4d xx xx/x3 x4 calld3.w ? / .disp x3x4 | ||
+ | 4e setz | ||
+ | 4f setnz | ||
+ | 50 cwd | ||
+ | 51 cbd | ||
+ | 52 xx xx loadgc.u ? 0 | ||
+ | 53 xx xx loadgs.u ? 0 | ||
+ | 54 xx xx loadgl.u ? 0 | ||
+ | 55 xx xx storegc.u ? 0 | ||
+ | 56 xx xx storegs.u ? 0 | ||
+ | 57 xx xx storegl.u ? 0 | ||
+ | 58 load0p | ||
+ | 59 load1p | ||
+ | 5a xx | ||
+ | 5b x1 x2 loadp.s x1x2 | ||
+ | 5c x1 x2 x3 x4 loadp.l x1x2x3x4 | ||
+ | 5d zz | ||
+ | 5e ? | ||
+ | 5f xx xx leagp.u ? 0 | ||
+ | 60 loadicp | ||
+ | 61 loadisp | ||
+ | 62 loadilp | ||
+ | 63 zz | ||
+ | 64 zz | ||
+ | 65 zz | ||
+ | 66 ? | ||
+ | 67 ? | ||
+ | 68 ? | ||
+ | 69 xx xx | ||
+ | 6a xx xx loadgsp.u ? 0 | ||
+ | 6b xx xx loadglp.u ? 0 | ||
+ | 6c load0m | ||
+ | 6d load1m | ||
+ | 6e xx | ||
+ | 6f x1 x2 loadm.s x1x2 | ||
+ | 70 x1 x2 x3 x4 *loadm.l x1x2x3x4 | ||
+ | 71 zz | ||
+ | 72 ? | ||
+ | 73 xx xx leagm.u ? 0 | ||
+ | 74 | ||
+ | 75 loadism | ||
+ | 76 loadilm | ||
+ | 77 zz *loadlcm.b xx yy | ||
+ | 78 zz | ||
+ | 79 zz | ||
+ | 7a ? | ||
+ | 7b ? | ||
+ | 7c ? | ||
+ | 7d xx xx loadgcm.u ? 0 | ||
+ | 7e xx xx loadgsm.u ? 0 | ||
+ | 7f xx xx loadglm.u ? 0 | ||
+ | 80 xx xx leas.w ? | ||
+ | 81 xx xx/x3 x4 lead.w ? / .disp x3x4 | ||
+ | </ | ||
+ | |||
+ | =====Added with bytecode v11===== | ||
+ | < | ||
+ | 83 decic1 | ||
+ | 84 incic1 | ||
+ | 85 decis1 | ||
+ | 86 incis1 | ||
+ | 87 decil1 | ||
+ | 88 incil1 | ||
+ | 89 popadd | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | =====Added with bytecode v12===== | ||
+ | < | ||
+ | 8a x1x2 x3x4.. *patch | ||
+ | 8b xx *loadic.b xx | ||
+ | 8c xx | ||
+ | 8d xx | ||
+ | 8e xx mul.c xx | ||
+ | 8f xx | ||
+ | 90 xx | ||
+ | 91 xx | ||
+ | </ | ||
+ | {{tag> |