diff options
Diffstat (limited to 'docs/history/17-o3-boundaries/code/examples/wiring.zc')
| -rw-r--r-- | docs/history/17-o3-boundaries/code/examples/wiring.zc | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/docs/history/17-o3-boundaries/code/examples/wiring.zc b/docs/history/17-o3-boundaries/code/examples/wiring.zc deleted file mode 100644 index d5e64f4..0000000 --- a/docs/history/17-o3-boundaries/code/examples/wiring.zc +++ /dev/null @@ -1,19 +0,0 @@ -// virtual enhancements: custom opcodes wired into the cpu while compiling. -// the recipes run through the core's optimizer; the jit inlines the result. -enhance popcount(x) micro - "r1 = shr x 1; r1 = and r1 0x55555555; x = sub x r1" - "; r1 = shr x 2; r1 = and r1 0x33333333; x = and x 0x33333333; x = add x r1" - "; r1 = shr x 4; x = add x r1; x = and x 0x0f0f0f0f; x = mul x 0x01010101; x = shr x 24"; -enhance div10(x) micro "x = udiv x 10"; // becomes a multiply-high, no divide -enhance hypot2(a, b) vm { 0 $ * ~ 0 $ * + }; // lifted from vm code -enhance 2 minmax(a, b) micro "r2 = min a b; r1 = max a b; r0 = r2"; -let lo, hi; -fn main() -{ - putn(popcount(0xff00ff)); putc(' '); - putn(div10(12345)); putc(' '); - putn(hypot2(3, 4)); putc(' '); - asm { 9 4 minmax hi ! lo ! } - putn(lo); putc('/'); putn(hi); putc(10); - return 0; -} |
