cabal-version: >= 1.10 name: risc386 version: 0.0.20230928 build-type: Simple license: BSD3 license-file: LICENSE author: Andreas Abel with contributions by Robert Grabowski and Ulrich Schoepp maintainer: Andreas Abel category: Compilers/Interpreters, Education homepage: https://github.com/andreasabel/risc386 synopsis: Reduced instruction set i386 simulator description: risc386 is a symbolic Intel(R) 386 assembler interpreter which allows infinitely many registers (temporaries). Its purpose is to debug the output of a MiniJava compiler (from Andrew Appel's book, Modern Compiler Implementation in JAVA) before register allocation has been performed. . risc386 supports only a small fragment of i386 instructions. It expects its input to be a list of procedures in .intel_syntax each of which is started by a label and terminated by a return statement. . Control flow is restricted, so, only jumps to procedure-local labels are allowed. Reading from an uninitialized memory location will lead to an exception. tested-with: GHC == 9.8.0 GHC == 9.6.3 GHC == 9.4.7 GHC == 9.2.8 GHC == 9.0.2 GHC == 8.10.7 GHC == 8.8.4 GHC == 8.6.5 GHC == 8.4.4 GHC == 8.2.2 GHC == 8.0.2 GHC == 7.10.3 extra-source-files: CHANGELOG.md README.md Makefile test/succeed/Makefile test/succeed/*.s test/succeed/*.raw.s test/fail/Makefile test/fail/*.s test/fail/*.err test/fail/*.raw.s test/fail/*.raw.err source-repository head type: git location: https://github.com/andreasabel/risc386.git executable risc386 hs-source-dirs: . build-depends: array >= 0.3 && < 0.6, base >= 4.6 && < 5, containers >= 0.3 && < 1, mtl >= 2.2 && < 2.4, -- ExceptT was added in mtl-2.2 pretty >= 1.0 && < 1.2 build-tools: happy >= 1.15 && < 2, alex >= 2.0 && < 4 default-language: Haskell2010 other-extensions: MultiParamTypeClasses TypeSynonymInstances FlexibleInstances FlexibleContexts GeneralizedNewtypeDeriving PatternGuards TupleSections main-is: MainIntel.hs other-modules: Frame FrameIntel GenSym Intel LexIntel ParseIntel StateIntel TokenIntel Util Wellformed