From 1ded839cb51ae32ad86d37a39d439dfd88f4fb6f Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Fri, 7 Feb 2025 09:12:14 -0800 Subject: Chapter 20: Graph Coloring Register Allocation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tamás Hadházy <85063808+Hels15@users.noreply.github.com> Co-authored-by: godalming123 <68993177+godalming123@users.noreply.github.com> Co-authored-by: RobertObkircher Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> --- .../java/com/seaofnodes/simple/ASMPrinter.java | 140 ------ src/main/java/com/seaofnodes/simple/Ary.java | 19 +- src/main/java/com/seaofnodes/simple/CodeGen.java | 288 ------------ .../com/seaofnodes/simple/GlobalCodeMotion.java | 241 ---------- .../com/seaofnodes/simple/GraphVisualizer.java | 288 ------------ src/main/java/com/seaofnodes/simple/IRPrinter.java | 279 ----------- src/main/java/com/seaofnodes/simple/IterPeeps.java | 9 +- src/main/java/com/seaofnodes/simple/JSViewer.java | 402 ---------------- .../java/com/seaofnodes/simple/ListScheduler.java | 231 --------- src/main/java/com/seaofnodes/simple/Machine.java | 21 - src/main/java/com/seaofnodes/simple/Parser.java | 4 +- src/main/java/com/seaofnodes/simple/RegMask.java | 47 -- src/main/java/com/seaofnodes/simple/SB.java | 1 - .../com/seaofnodes/simple/SimpleWebSocket.java | 148 ------ .../com/seaofnodes/simple/codegen/BuildLRG.java | 91 ++++ .../com/seaofnodes/simple/codegen/CodeGen.java | 338 +++++++++++++ .../simple/codegen/GlobalCodeMotion.java | 281 +++++++++++ .../java/com/seaofnodes/simple/codegen/IFG.java | 521 +++++++++++++++++++++ .../java/com/seaofnodes/simple/codegen/LRG.java | 220 +++++++++ .../seaofnodes/simple/codegen/ListScheduler.java | 258 ++++++++++ .../com/seaofnodes/simple/codegen/Machine.java | 22 + .../com/seaofnodes/simple/codegen/RegAlloc.java | 502 ++++++++++++++++++++ .../com/seaofnodes/simple/codegen/RegMask.java | 142 ++++++ .../java/com/seaofnodes/simple/node/AddNode.java | 6 +- .../java/com/seaofnodes/simple/node/AndNode.java | 9 +- .../java/com/seaofnodes/simple/node/BoolNode.java | 10 +- .../java/com/seaofnodes/simple/node/CFGNode.java | 28 +- .../java/com/seaofnodes/simple/node/CProjNode.java | 2 +- .../com/seaofnodes/simple/node/CallEndNode.java | 22 +- .../java/com/seaofnodes/simple/node/CallNode.java | 27 +- .../com/seaofnodes/simple/node/CalleeSaveNode.java | 25 + .../java/com/seaofnodes/simple/node/CastNode.java | 8 +- .../com/seaofnodes/simple/node/ConstantNode.java | 8 +- .../java/com/seaofnodes/simple/node/CtrlNode.java | 2 +- .../java/com/seaofnodes/simple/node/DivFNode.java | 11 +- .../java/com/seaofnodes/simple/node/FunNode.java | 25 +- .../java/com/seaofnodes/simple/node/IfNode.java | 6 +- .../java/com/seaofnodes/simple/node/LoadNode.java | 4 +- .../com/seaofnodes/simple/node/LogicalNode.java | 4 +- .../seaofnodes/simple/node/MachConcreteNode.java | 2 +- .../java/com/seaofnodes/simple/node/MachNode.java | 18 +- .../com/seaofnodes/simple/node/MemMergeNode.java | 1 + .../java/com/seaofnodes/simple/node/MemOpNode.java | 10 +- .../java/com/seaofnodes/simple/node/MulNode.java | 4 +- .../java/com/seaofnodes/simple/node/NeverNode.java | 2 +- src/main/java/com/seaofnodes/simple/node/Node.java | 104 +++- .../java/com/seaofnodes/simple/node/PhiNode.java | 5 +- .../java/com/seaofnodes/simple/node/ProjNode.java | 1 - .../com/seaofnodes/simple/node/RegionNode.java | 4 +- .../com/seaofnodes/simple/node/ReturnNode.java | 3 +- .../java/com/seaofnodes/simple/node/ScopeNode.java | 1 + .../java/com/seaofnodes/simple/node/SplitNode.java | 22 + .../java/com/seaofnodes/simple/node/StartNode.java | 5 +- .../java/com/seaofnodes/simple/node/StopNode.java | 2 +- .../java/com/seaofnodes/simple/node/XCtrlNode.java | 3 +- .../seaofnodes/simple/node/cpus/arm/AddARM.java | 34 ++ .../seaofnodes/simple/node/cpus/arm/AddFARM.java | 31 ++ .../seaofnodes/simple/node/cpus/arm/AddIARM.java | 51 ++ .../seaofnodes/simple/node/cpus/arm/AndARM.java | 38 ++ .../seaofnodes/simple/node/cpus/arm/AndIARM.java | 56 +++ .../seaofnodes/simple/node/cpus/arm/AsrARM.java | 40 ++ .../seaofnodes/simple/node/cpus/arm/AsrIARM.java | 41 ++ .../seaofnodes/simple/node/cpus/arm/BranchARM.java | 48 ++ .../seaofnodes/simple/node/cpus/arm/CallARM.java | 45 ++ .../simple/node/cpus/arm/CallEndARM.java | 35 ++ .../seaofnodes/simple/node/cpus/arm/CallRRARM.java | 32 ++ .../seaofnodes/simple/node/cpus/arm/CmpARM.java | 30 ++ .../seaofnodes/simple/node/cpus/arm/CmpFARM.java | 31 ++ .../seaofnodes/simple/node/cpus/arm/CmpIARM.java | 54 +++ .../seaofnodes/simple/node/cpus/arm/CmpMemARM.java | 4 + .../seaofnodes/simple/node/cpus/arm/DivARM.java | 33 ++ .../seaofnodes/simple/node/cpus/arm/DivFARM.java | 30 ++ .../seaofnodes/simple/node/cpus/arm/FloatARM.java | 36 ++ .../seaofnodes/simple/node/cpus/arm/FunARM.java | 21 + .../seaofnodes/simple/node/cpus/arm/I2F8ARM.java | 29 ++ .../seaofnodes/simple/node/cpus/arm/IntARM.java | 38 ++ .../seaofnodes/simple/node/cpus/arm/LoadARM.java | 37 ++ .../seaofnodes/simple/node/cpus/arm/LslARM.java | 41 ++ .../seaofnodes/simple/node/cpus/arm/LslIARM.java | 42 ++ .../seaofnodes/simple/node/cpus/arm/LsrARM.java | 40 ++ .../seaofnodes/simple/node/cpus/arm/LsrIARM.java | 41 ++ .../seaofnodes/simple/node/cpus/arm/MemOpARM.java | 58 +++ .../seaofnodes/simple/node/cpus/arm/MulARM.java | 34 ++ .../seaofnodes/simple/node/cpus/arm/MulFARM.java | 30 ++ .../seaofnodes/simple/node/cpus/arm/MulIARM.java | 43 ++ .../seaofnodes/simple/node/cpus/arm/NewARM.java | 31 ++ .../seaofnodes/simple/node/cpus/arm/NotARM.java | 26 + .../com/seaofnodes/simple/node/cpus/arm/OrARM.java | 42 ++ .../seaofnodes/simple/node/cpus/arm/OrIARM.java | 40 ++ .../seaofnodes/simple/node/cpus/arm/ParmARM.java | 25 + .../seaofnodes/simple/node/cpus/arm/ProjARM.java | 23 + .../seaofnodes/simple/node/cpus/arm/RetARM.java | 49 ++ .../seaofnodes/simple/node/cpus/arm/SetARM.java | 41 ++ .../seaofnodes/simple/node/cpus/arm/SplitARM.java | 22 + .../seaofnodes/simple/node/cpus/arm/StoreARM.java | 52 ++ .../seaofnodes/simple/node/cpus/arm/SubARM.java | 30 ++ .../seaofnodes/simple/node/cpus/arm/SubFARM.java | 32 ++ .../seaofnodes/simple/node/cpus/arm/SubIARM.java | 42 ++ .../seaofnodes/simple/node/cpus/arm/TFPARM.java | 37 ++ .../seaofnodes/simple/node/cpus/arm/XorARM.java | 41 ++ .../seaofnodes/simple/node/cpus/arm/XorIARM.java | 43 ++ .../com/seaofnodes/simple/node/cpus/arm/arm.java | 385 +++++++++++++++ .../com/seaofnodes/simple/node/cpus/arm/i2f8.java | 4 + .../simple/node/cpus/riscv/AddFRISC.java | 4 +- .../simple/node/cpus/riscv/AddIRISC.java | 44 +- .../seaofnodes/simple/node/cpus/riscv/AddRISC.java | 17 +- .../simple/node/cpus/riscv/AndIRISC.java | 41 +- .../seaofnodes/simple/node/cpus/riscv/AndRISC.java | 11 +- .../simple/node/cpus/riscv/BranchRISC.java | 47 ++ .../simple/node/cpus/riscv/CBranchRISC.java | 49 -- .../simple/node/cpus/riscv/CallEndRISC.java | 35 ++ .../simple/node/cpus/riscv/CallRISC.java | 13 +- .../simple/node/cpus/riscv/CallRRISC.java | 14 +- .../simple/node/cpus/riscv/CastRISC.java | 18 + .../simple/node/cpus/riscv/CmpIRISC.java | 44 -- .../seaofnodes/simple/node/cpus/riscv/CmpRISC.java | 28 -- .../simple/node/cpus/riscv/DivFRISC.java | 6 +- .../seaofnodes/simple/node/cpus/riscv/DivRISC.java | 9 +- .../seaofnodes/simple/node/cpus/riscv/FltRISC.java | 20 +- .../seaofnodes/simple/node/cpus/riscv/FunRISC.java | 7 +- .../simple/node/cpus/riscv/I2F8RISC.java | 3 +- .../seaofnodes/simple/node/cpus/riscv/ImmRISC.java | 40 ++ .../seaofnodes/simple/node/cpus/riscv/IntRISC.java | 28 +- .../simple/node/cpus/riscv/LoadRISC.java | 30 +- .../simple/node/cpus/riscv/MemOpRISC.java | 31 +- .../simple/node/cpus/riscv/MulFRISC.java | 6 +- .../simple/node/cpus/riscv/MulIRISC.java | 35 -- .../seaofnodes/simple/node/cpus/riscv/MulRISC.java | 7 +- .../seaofnodes/simple/node/cpus/riscv/NewRISC.java | 33 +- .../seaofnodes/simple/node/cpus/riscv/NotRISC.java | 25 + .../seaofnodes/simple/node/cpus/riscv/OrIRISC.java | 40 +- .../seaofnodes/simple/node/cpus/riscv/OrRISC.java | 18 +- .../simple/node/cpus/riscv/ParmRISC.java | 11 +- .../simple/node/cpus/riscv/ProjRISC.java | 16 +- .../seaofnodes/simple/node/cpus/riscv/RetRISC.java | 30 +- .../simple/node/cpus/riscv/SetFRISC.java | 33 ++ .../simple/node/cpus/riscv/SetIRISC.java | 17 + .../seaofnodes/simple/node/cpus/riscv/SetRISC.java | 32 +- .../simple/node/cpus/riscv/SllIRISC.java | 41 +- .../seaofnodes/simple/node/cpus/riscv/SllRISC.java | 11 +- .../simple/node/cpus/riscv/SplitRISC.java | 21 + .../simple/node/cpus/riscv/SraIRISC.java | 44 +- .../seaofnodes/simple/node/cpus/riscv/SraRISC.java | 12 +- .../simple/node/cpus/riscv/SrlIRISC.java | 44 +- .../seaofnodes/simple/node/cpus/riscv/SrlRISC.java | 10 +- .../simple/node/cpus/riscv/StoreRISC.java | 30 +- .../simple/node/cpus/riscv/SubFRISC.java | 4 +- .../seaofnodes/simple/node/cpus/riscv/SubRISC.java | 6 +- .../seaofnodes/simple/node/cpus/riscv/TFPRISC.java | 18 +- .../simple/node/cpus/riscv/XorIRISC.java | 42 +- .../seaofnodes/simple/node/cpus/riscv/XorRISC.java | 14 +- .../seaofnodes/simple/node/cpus/riscv/riscv.java | 428 +++++++++-------- .../simple/node/cpus/x86_64_v2/AddFMemX86.java | 14 +- .../simple/node/cpus/x86_64_v2/AddFX86.java | 4 + .../simple/node/cpus/x86_64_v2/AddIX86.java | 2 + .../simple/node/cpus/x86_64_v2/AddMemX86.java | 7 +- .../simple/node/cpus/x86_64_v2/AddX86.java | 6 +- .../simple/node/cpus/x86_64_v2/AndIX86.java | 2 + .../simple/node/cpus/x86_64_v2/AndX86.java | 7 +- .../simple/node/cpus/x86_64_v2/CallEndX86.java | 14 +- .../simple/node/cpus/x86_64_v2/CallRX86.java | 25 +- .../simple/node/cpus/x86_64_v2/CallX86.java | 28 +- .../simple/node/cpus/x86_64_v2/CastX86.java | 18 + .../simple/node/cpus/x86_64_v2/CmpFX86.java | 29 ++ .../simple/node/cpus/x86_64_v2/CmpIX86.java | 20 +- .../simple/node/cpus/x86_64_v2/CmpMemX86.java | 4 +- .../simple/node/cpus/x86_64_v2/CmpX86.java | 5 +- .../simple/node/cpus/x86_64_v2/DivFX86.java | 2 + .../simple/node/cpus/x86_64_v2/DivX86.java | 14 +- .../simple/node/cpus/x86_64_v2/FltX86.java | 11 +- .../simple/node/cpus/x86_64_v2/FunX86.java | 5 +- .../simple/node/cpus/x86_64_v2/I2f8X86.java | 2 + .../simple/node/cpus/x86_64_v2/IntX86.java | 24 +- .../simple/node/cpus/x86_64_v2/JmpX86.java | 6 +- .../simple/node/cpus/x86_64_v2/LeaX86.java | 2 + .../simple/node/cpus/x86_64_v2/LoadX86.java | 6 +- .../simple/node/cpus/x86_64_v2/MemAddX86.java | 4 +- .../simple/node/cpus/x86_64_v2/MemOpX86.java | 18 +- .../simple/node/cpus/x86_64_v2/MulFX86.java | 4 + .../simple/node/cpus/x86_64_v2/MulIX86.java | 11 +- .../simple/node/cpus/x86_64_v2/MulX86.java | 5 +- .../simple/node/cpus/x86_64_v2/NewX86.java | 27 +- .../simple/node/cpus/x86_64_v2/NotX86.java | 26 + .../simple/node/cpus/x86_64_v2/OrIX86.java | 7 +- .../simple/node/cpus/x86_64_v2/OrX86.java | 4 +- .../simple/node/cpus/x86_64_v2/ParmX86.java | 14 +- .../simple/node/cpus/x86_64_v2/ProjX86.java | 8 +- .../simple/node/cpus/x86_64_v2/RetX86.java | 31 +- .../simple/node/cpus/x86_64_v2/SarIX86.java | 2 + .../simple/node/cpus/x86_64_v2/SarX86.java | 15 +- .../simple/node/cpus/x86_64_v2/SetX86.java | 4 +- .../simple/node/cpus/x86_64_v2/ShlIX86.java | 2 + .../simple/node/cpus/x86_64_v2/ShlX86.java | 8 +- .../simple/node/cpus/x86_64_v2/ShrIX86.java | 3 +- .../simple/node/cpus/x86_64_v2/ShrX86.java | 4 +- .../simple/node/cpus/x86_64_v2/SplitX86.java | 21 + .../simple/node/cpus/x86_64_v2/StoreX86.java | 10 +- .../simple/node/cpus/x86_64_v2/SubFX86.java | 2 + .../simple/node/cpus/x86_64_v2/SubX86.java | 2 + .../simple/node/cpus/x86_64_v2/TFPX86.java | 11 +- .../simple/node/cpus/x86_64_v2/XorIX86.java | 7 +- .../simple/node/cpus/x86_64_v2/XorX86.java | 36 ++ .../simple/node/cpus/x86_64_v2/x86_64_v2.java | 281 ++++++----- .../com/seaofnodes/simple/print/ASMPrinter.java | 163 +++++++ .../seaofnodes/simple/print/GraphVisualizer.java | 287 ++++++++++++ .../com/seaofnodes/simple/print/IRPrinter.java | 328 +++++++++++++ .../java/com/seaofnodes/simple/print/JSViewer.java | 405 ++++++++++++++++ .../seaofnodes/simple/print/SimpleWebSocket.java | 149 ++++++ .../com/seaofnodes/simple/type/TypeFunPtr.java | 4 +- .../com/seaofnodes/simple/type/TypeStruct.java | 1 + .../java/com/seaofnodes/simple/type/TypeTuple.java | 2 + 211 files changed, 7397 insertions(+), 3298 deletions(-) delete mode 100644 src/main/java/com/seaofnodes/simple/ASMPrinter.java delete mode 100644 src/main/java/com/seaofnodes/simple/CodeGen.java delete mode 100644 src/main/java/com/seaofnodes/simple/GlobalCodeMotion.java delete mode 100644 src/main/java/com/seaofnodes/simple/GraphVisualizer.java delete mode 100644 src/main/java/com/seaofnodes/simple/IRPrinter.java delete mode 100644 src/main/java/com/seaofnodes/simple/JSViewer.java delete mode 100644 src/main/java/com/seaofnodes/simple/ListScheduler.java delete mode 100644 src/main/java/com/seaofnodes/simple/Machine.java delete mode 100644 src/main/java/com/seaofnodes/simple/RegMask.java delete mode 100644 src/main/java/com/seaofnodes/simple/SimpleWebSocket.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/BuildLRG.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/CodeGen.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/GlobalCodeMotion.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/IFG.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/LRG.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/ListScheduler.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/Machine.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/RegAlloc.java create mode 100644 src/main/java/com/seaofnodes/simple/codegen/RegMask.java create mode 100644 src/main/java/com/seaofnodes/simple/node/CalleeSaveNode.java create mode 100644 src/main/java/com/seaofnodes/simple/node/SplitNode.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/AddARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/AddFARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/AddIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/AndARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/AndIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/AsrARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/AsrIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/BranchARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/CallARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/CallEndARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/CallRRARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/CmpARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/CmpFARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/CmpIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/CmpMemARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/DivARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/DivFARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/FloatARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/FunARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/I2F8ARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/IntARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/LoadARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/LslARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/LslIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/LsrARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/LsrIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/MemOpARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/MulARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/MulFARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/MulIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/NewARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/NotARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/OrARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/OrIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/ParmARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/ProjARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/RetARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/SetARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/SplitARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/StoreARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/SubARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/SubFARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/SubIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/TFPARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/XorARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/XorIARM.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/arm.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/arm/i2f8.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/BranchRISC.java delete mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/CBranchRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/CallEndRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/CastRISC.java delete mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/CmpIRISC.java delete mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/CmpRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/ImmRISC.java delete mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/MulIRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/NotRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/SetFRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/SetIRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/riscv/SplitRISC.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/CastX86.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/CmpFX86.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/NotX86.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/SplitX86.java create mode 100644 src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/XorX86.java create mode 100644 src/main/java/com/seaofnodes/simple/print/ASMPrinter.java create mode 100644 src/main/java/com/seaofnodes/simple/print/GraphVisualizer.java create mode 100644 src/main/java/com/seaofnodes/simple/print/IRPrinter.java create mode 100644 src/main/java/com/seaofnodes/simple/print/JSViewer.java create mode 100644 src/main/java/com/seaofnodes/simple/print/SimpleWebSocket.java (limited to 'src/main/java') diff --git a/src/main/java/com/seaofnodes/simple/ASMPrinter.java b/src/main/java/com/seaofnodes/simple/ASMPrinter.java deleted file mode 100644 index 5cc13210..00000000 --- a/src/main/java/com/seaofnodes/simple/ASMPrinter.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.seaofnodes.simple; - -import com.seaofnodes.simple.node.*; -import com.seaofnodes.simple.SB; -import com.seaofnodes.simple.type.TypeFunPtr; -import com.seaofnodes.simple.type.TypeMem; -import com.seaofnodes.simple.type.TypeRPC; - -public abstract class ASMPrinter { - - public static SB print(SB sb, CodeGen code) { - if( code._cfg==null ) - return sb.p("Need _cfg set, run after GCM"); - - // instruction address - int iadr = 0; - for( int i=0; i