macaw/cabal.project.freeze.ghc-9.0.2
Brett Boston 82640e7a4b
Add RISC-V backend (#259)
* riscv: added grift as submodule

* added macaw-riscv project

* make arch polykinded everywhere in macaw base

* stubbed out riscv_info

* update grift

* started on RISCVReg

* started on RISCVReg

* RegisterInfo instance for RISCVReg (a few unimplemented fields)

* filled out archRegSet

* filled out withArchConstraints, archAddrWidth, and archEndianness

* added Arch module

* RISCV initialBlockRegs

* preliminary work on disassembleFn

* wip: disassembleFn

* made things more lens-y

* wip: disassemble instruction

* finished disassembly of grift assignment statements

* separated out DisInstM into separate module

* disassembly wip

* finished disassembleBlock

* Finished riscvDisassembleFn

* bump grift submodule

* made macaw discovery poly-kinded

* added risc-v test suite

* added risc-v test suite

* fixed macaw semantics to hardware x0 to constant value 0

* added riscvPreserveReg based on assembler's manual

* riscvDemandContext

* successfully disassembled a block!

* enhanced tests to allow optional entry point spec

* stubbed out identifyCall

* stubbed out identifyReturn

* passing initial test

* added checkForReturnAddr stub

* fleshed out identifyCall and identifyReturn

* update grift submodule

* bug fix and exception handling

* added EXC register, which tracks whether or not we've attempted to
read from/write to any system registers.

* Replaced custom CSR type with GRIFT's (but we're not using it
currently)

* added better show instance for GPRs we should migrate this to a
GRIFT pretty printer at some point)

* Fixed a vicious bug in the semantics; unsigned and signed LT were
getting swapped in translation

* added pattern synonyms for GPRs

* improved docs and fixed RISCVReg bug (GP was 3 instead of 4)

* changed undefineds to errors

* changed RISCV class to RISCVConstraints

* wrapped GRIFT's "RV" parameter in a type to remove the need to make
macaw architecture parameter polykinded

* rolled back all changes to macaw base that made things poly-kinded

* reverted two more macaw core changes, updated license, removed old PPC test

* macaw: update to upstream changes in bv-sized and grift

* address code review comments

* macaw-riscv: expose fewer modules

* Update RISCVTermStmt definition

* Update riscv_info.  macaw-riscv now builds against master

* Update bv-sized and cabal freeze files

* Update cabal freeze files with satisfying lens version

* Get tests building

* Fix printf runtime error

* Add simpler tests

* Change RISCV target version and update grift pointer

[skip ci]

* Compressed branch test passes

[skip ci]

* Add additional small tests

[skip ci]

* Introduce a syscall PrimFn

* Syscalls now correctly classified

* Fix return regs from syscall

* Extract syscall arguments

* Update expected riscv test results

* Add macaw-riscv build + test to CI

* Get building with GHC 9.0.2

* Revert "Update cabal freeze files with satisfying lens version"

This reverts commit 4aa95c19c3.

* Install softfloat in CI

* Update Grift

* Some initial cleanup

* More cleanup

* Resolve FIXME on getReg

* Detect and only accept rv64gc rvreprs

* Address Tristan's PR comments

* Update Grift pointer

* Add info on installing Softfloat to README for macaw-riscv

* Add missing submodule step to softfloat build instructions

Co-authored-by: Ben Selfridge <benselfridge@000279.local>
Co-authored-by: Valentin Robert <val@galois.com>
2022-03-04 12:44:46 -08:00

267 lines
11 KiB
Groff

active-repositories: hackage.haskell.org:merge
constraints: any.BoundedChan ==1.0.3.0,
any.Cabal ==3.4.1.0,
any.Glob ==0.10.2,
any.HUnit ==1.6.2.0,
any.IntervalMap ==0.6.1.2,
any.OneTuple ==0.3.1,
any.Only ==0.1,
any.QuickCheck ==2.14.2,
QuickCheck -old-random +templatehaskell,
any.SHA ==1.6.4.4,
SHA -exe,
any.StateVar ==1.2.2,
any.adjunctions ==4.4,
any.aeson ==2.0.3.0,
aeson -cffi +ordered-keymap,
any.alex ==3.2.6,
alex +small_base,
any.ansi-terminal ==0.11.1,
ansi-terminal -example,
any.ansi-wl-pprint ==0.6.9,
ansi-wl-pprint -example,
any.array ==0.5.4.0,
asl-translator -asl-lite +unsafe-operations,
any.assoc ==1.0.2,
any.async ==2.2.4,
async -bench,
any.atomic-primops ==0.8.4,
atomic-primops -debug,
any.attoparsec ==0.14.4,
attoparsec -developer,
any.base ==4.15.1.0,
any.base-compat ==0.12.1,
any.base-compat-batteries ==0.12.1,
any.base-orphans ==0.8.6,
any.base16-bytestring ==1.0.2.0,
any.bifunctors ==5.5.11,
bifunctors +semigroups +tagged,
any.bimap ==0.4.0,
any.binary ==0.8.8.0,
any.bitwise ==1.0.0.1,
any.blaze-builder ==0.4.2.2,
any.blaze-textual ==0.2.2.1,
blaze-textual -developer -integer-simple +native,
any.boomerang ==1.4.7,
any.bytestring ==0.10.12.1,
any.call-stack ==0.4.0,
any.case-insensitive ==1.2.1.0,
any.cereal ==0.5.8.2,
cereal -bytestring-builder,
any.clock ==0.8.2,
clock -llvm,
any.code-page ==0.2.1,
any.colour ==2.3.6,
any.comonad ==5.0.8,
comonad +containers +distributive +indexed-traversable,
any.config-value ==0.8.2,
any.constraints ==0.13.2,
any.containers ==0.6.4.1,
any.contravariant ==1.5.5,
contravariant +semigroups +statevar +tagged,
crucible +unsafe-operations,
any.data-binary-ieee754 ==0.4.4,
any.data-default-class ==0.1.2.0,
any.data-fix ==0.3.2,
any.deepseq ==1.4.5.0,
any.deriving-compat ==0.6,
deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11,
any.direct-sqlite ==2.3.26,
direct-sqlite +fulltextsearch +haveusleep +json1 -systemlib +urifilenames,
any.directory ==1.3.6.2,
dismantle-arm-xml -asl-lite,
any.distributive ==0.6.2.1,
distributive +semigroups +tagged,
any.dlist ==1.0,
dlist -werror,
any.doctest ==0.20.0,
any.dotgen ==0.4.3,
dotgen -devel,
any.exceptions ==0.10.4,
any.extra ==1.7.10,
any.fgl ==5.7.0.3,
fgl +containers042,
any.fgl-visualize ==0.1.0.1,
any.filemanip ==0.3.6.3,
any.filepath ==1.4.2.1,
any.fingertree ==0.1.4.2,
any.finite-typelits ==0.1.4.2,
any.free ==5.1.7,
any.generic-random ==1.5.0.1,
generic-random -enable-inspect,
any.ghc ==9.0.2,
any.ghc-bignum ==1.1,
any.ghc-boot ==9.0.2,
any.ghc-boot-th ==9.0.2,
any.ghc-heap ==9.0.2,
any.ghc-paths ==0.1.0.12,
any.ghc-prim ==0.7.0,
any.ghc-tcplugins-extra ==0.4.2,
ghc-tcplugins-extra -deverror,
any.ghc-typelits-natnormalise ==0.7.6,
ghc-typelits-natnormalise -deverror,
any.ghci ==9.0.2,
any.gitrev ==1.3.1,
any.haggle ==0.1.0.1,
any.happy ==1.20.0,
any.hashable ==1.3.5.0,
hashable +integer-gmp -random-initial-seed,
any.hashtables ==1.2.4.2,
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
any.haskell-lexer ==1.1,
any.hpc ==0.6.1.0,
any.hsc2hs ==0.68.8,
hsc2hs -in-ghc-tree,
any.hspec ==2.9.4,
any.hspec-core ==2.9.4,
any.hspec-discover ==2.9.4,
any.hspec-expectations ==0.8.2,
any.ilist ==0.4.0.1,
any.indexed-list-literals ==0.2.1.3,
any.indexed-traversable ==0.1.2,
any.indexed-traversable-instances ==0.1.1,
any.integer-gmp ==1.1,
any.integer-logarithms ==1.0.3.1,
integer-logarithms -check-bounds +integer-gmp,
any.invariant ==0.5.5,
any.io-streams ==1.5.2.1,
io-streams +network -nointeractivetests +zlib,
any.itanium-abi ==0.1.1.1,
any.json ==0.10,
json +generic -mapdict +parsec +pretty +split-base,
any.kan-extensions ==5.2.3,
any.kvitable ==1.0.0.0,
any.lens ==5.0.1,
lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy,
any.libBF ==0.6.3,
libBF -system-libbf,
llvm-pretty-bc-parser -fuzz -regressions,
any.located-base ==0.1.1.1,
any.logict ==0.7.0.3,
any.lucid ==2.9.12.1,
any.lumberjack ==1.0.0.1,
any.math-functions ==0.3.4.2,
math-functions +system-erf +system-expm1,
any.megaparsec ==8.0.0,
megaparsec -dev,
any.microlens ==0.4.12.0,
any.microlens-th ==0.4.3.10,
any.mmorph ==1.2.0,
any.monad-primitive ==0.1,
any.monadLib ==3.10,
any.mtl ==2.2.2,
any.mwc-random ==0.14.0.0,
any.network ==3.1.2.7,
network -devel,
any.old-locale ==1.0.0.7,
any.optparse-applicative ==0.16.1.0,
optparse-applicative +process,
any.ordered-containers ==0.2.2,
any.panic ==0.4.0.1,
any.parallel ==3.2.2.0,
any.parameterized-utils ==2.1.4.0,
parameterized-utils +unsafe-operations,
any.parsec ==3.1.14.0,
any.parser-combinators ==1.3.0,
parser-combinators -dev,
any.pretty ==1.1.3.6,
any.pretty-hex ==1.1,
any.pretty-show ==1.10,
any.prettyprinter ==1.7.1,
prettyprinter -buildreadme +text,
any.prettyprinter-ansi-terminal ==1.1.3,
any.primitive ==0.7.3.0,
any.process ==1.6.13.2,
any.profunctors ==5.6.2,
any.pvar ==1.0.0.0,
any.quickcheck-io ==0.2.0,
any.random ==1.2.1,
any.ref-tf ==0.5.0.1,
any.reflection ==2.1.6,
reflection -slow +template-haskell,
any.regex-base ==0.94.0.2,
any.regex-tdfa ==1.3.1.1,
regex-tdfa -force-o2,
any.rts ==1.0.2,
any.s-cargot ==0.1.4.0,
s-cargot -build-example,
any.s-cargot-letbind ==0.2.3.0,
any.scheduler ==1.5.0,
any.scientific ==0.3.7.0,
scientific -bytestring-builder -integer-simple,
any.semialign ==1.2.0.1,
semialign +semigroupoids,
any.semigroupoids ==5.3.7,
semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
any.semigroups ==0.19.2,
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
any.setenv ==0.1.1.3,
any.smallcheck ==1.2.1,
any.split ==0.2.3.4,
any.splitmix ==0.1.0.4,
splitmix -optimised-mixer,
any.sqlite-simple ==0.4.18.0,
any.stm ==2.5.0.0,
any.strict ==0.4.0.1,
strict +assoc,
any.syb ==0.7.2.1,
any.tagged ==0.8.6.1,
tagged +deepseq +transformers,
any.tasty ==1.4.2.1,
tasty +clock +unix,
any.tasty-expected-failure ==0.12.3,
any.tasty-hspec ==1.2,
any.tasty-hunit ==0.10.0.3,
any.tasty-quickcheck ==0.10.2,
any.tasty-smallcheck ==0.8.2,
any.tasty-sugar ==1.1.1.0,
any.template-haskell ==2.17.0.0,
any.temporary ==1.3,
any.terminfo ==0.4.1.5,
any.text ==1.2.5.0,
any.text-short ==0.1.5,
text-short -asserts,
any.tf-random ==0.5,
any.th-abstraction ==0.4.3.0,
any.th-compat ==0.1.3,
any.th-lift ==0.8.2,
any.th-lift-instances ==0.1.19,
any.these ==1.1.1.1,
these +assoc,
any.time ==1.9.3,
any.time-compat ==1.9.6.1,
time-compat -old-locale,
any.transformers ==0.5.6.2,
any.transformers-base ==0.4.6,
transformers-base +orphaninstances,
any.transformers-compat ==0.7.1,
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
any.type-equality ==1,
any.unbounded-delays ==0.1.1.1,
any.uniplate ==1.6.13,
any.unix ==2.7.2.2,
any.unix-compat ==0.5.4,
unix-compat -old-time,
any.unliftio ==0.2.20,
any.unliftio-core ==0.2.0.1,
any.unordered-containers ==0.2.16.0,
unordered-containers -debug,
any.utf8-string ==1.0.2,
any.uuid-types ==1.0.5,
any.vector ==0.12.3.1,
vector +boundschecks -internalchecks -unsafechecks -wall,
any.vector-sized ==1.5.0,
any.versions ==5.0.2,
any.void ==0.7.3,
void -safe,
any.wcwidth ==0.0.2,
wcwidth -cli +split-base,
what4 -drealtestdisable -solvertests -stptestdisable,
any.witherable ==0.4.2,
any.xml ==1.3.14,
any.zenc ==0.1.2,
any.zlib ==0.6.2.3,
zlib -bundled-c-zlib -non-blocking-ffi -pkg-config,
any.zlib-bindings ==0.1.1.5
index-state: hackage.haskell.org 2022-01-22T00:34:26Z