summaryrefslogtreecommitdiff
path: root/docs/2026_REBASE/backend.js
blob: 91ffb239014b2da72b3381623cb0aa544e630f50 (plain)
1
2
3
4
5
6
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"
};