diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-04 13:30:41 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-04 13:30:41 -0700 |
| commit | a4994371c0b0fbea9d2802acc22d9cc3977a0de0 (patch) | |
| tree | 98fd05869028a931f5ec8cf503b5cdf6b6c52e87 /docs/2026_REBASE/backend.js | |
| parent | 9149ea7a50c564856bd09633f38d980e8230c34f (diff) | |
| download | Simple-readme.tar.gz Simple-readme.zip | |
Slides for 2026 REBASEreadme
Diffstat (limited to 'docs/2026_REBASE/backend.js')
| -rw-r--r-- | docs/2026_REBASE/backend.js | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/docs/2026_REBASE/backend.js b/docs/2026_REBASE/backend.js new file mode 100644 index 00000000..91ffb239 --- /dev/null +++ b/docs/2026_REBASE/backend.js @@ -0,0 +1,7 @@ +/* Generated by tools/BackendDump.java; Chapter 21, x86-64 System V. */ +window.REBASE.backend = { + source: "struct Box { int x; };\nreturn { !Box box, int arg ->\n int n = arg < 0 ? -arg : arg;\n box.x += n;\n return n;\n};\n", + selected: "id node inputs\n 7 StartNode _ _ _\n11 ConstantNode 7\n15 ConstantNode 7\n18 ConstantNode 7\n22 ConstantNode 7\n 6 FunX86 _ 7\n10 ParmX86:arg 6 11\n14 ParmX86:$mem 6 15\n17 ParmX86:box 6 18\n21 ParmX86:$rpc 6 22\n 8 CmpIX86 _ 10\n20 NegX86 _ 10\n 5 JmpX86 6 8\n12 CProjNode:False 5\n 4 CProjNode:True 5\n 3 RegionNode _ 4 12\n19 PhiNode 3 20 10\n16 MemAddX86 _ 14 17 _ 19\n13 MemMergeNode _ 14 16\n 2 RetX86 3 13 19 21\n 1 StopNode 2\n", + assembly: "\n--- { *Box {int !x; } int -> int #0}---------------------------\n arg rsi\n box rdi\n r15 // r15\n r14 // r14\n r13 // r13\n r12 // r12\n rbp // rbp\n rbx // rbx\n0000 mov rax = rsi // def/empty1 #0\n0000 test rax \n0000 j< L4 // L12\nL12:\n0000 ?? JMP L3\nL4:\n0001 neg rax \nL3:\n rax = phi( N20,N33 )\n0001 add8 [rdi] += rax \n0001 ret rax [stk#33] rbx rbp r12 r13 r14 r15 \n--- ---------------------------\n", + encoded: "\n--- { *Box {int !x; } int -> int #0}---------------------------\n arg:rsi,box:rdi\n0000 488bc6 mov rax = rsi // def/empty1 #0\n0003 4883f800 test rax \n0007 7d03 j>= L3 // L4\nL4:\n0009 48f7d8 neg rax \nL12:\nL3:\n :rax\n000c 480107 add8 [rdi] += rax \n000f c3 ret \n--- ---------------------------\n" +}; |
