Commit Graph

242 Commits

Author SHA1 Message Date
Iavor Diatchki
cb9cef128e Implement vpinsrq and structore for the rest of the vector insert instruction 2018-03-26 13:17:03 -07:00
Joe Hendrix
ceefa7ae75
Update memory to use explicit BSS region and disable includeBSS option. 2018-03-23 16:26:07 -07:00
Iavor Diatchki
9ffaf478bf Semantics for vmovq 2018-03-23 16:15:43 -07:00
Aaron Tomb
e33ecf3e84 Fix build with GHC 8.4.1 2018-03-23 14:09:28 -07:00
Iavor Diatchki
d3d5f39ebb Change YMM patterns to just use Word8 directly.
Simpler, not clear that the additional abstraction was useful.
2018-03-21 16:14:59 -07:00
Iavor Diatchki
6875f84971 Add implementation for vpsllq 2018-03-15 09:49:03 -07:00
Iavor Diatchki
e967573eb0 Set false to False, not True :) 2018-03-14 15:22:19 -07:00
Iavor Diatchki
9c7070f8e6 Haddock comments fixes, thanks to Brian 2018-03-09 09:51:55 -08:00
Iavor Diatchki
82e1dc0ebc Add shift right for vectors. 2018-03-08 11:20:41 -08:00
Joe Hendrix
14ab6352f5
Export elfAddrWidth 2018-02-28 09:26:10 -08:00
Joe Hendrix
a167997fc2
Merge branch 'master' of github.com:GaloisInc/macaw 2018-02-27 17:09:57 -08:00
Iavor Diatchki
2e21856afe Merge remote-tracking branch 'origin/master' into mem-model
# Conflicts:
#	base/src/Data/Macaw/Memory/ElfLoader.hs
2018-02-27 16:36:08 -08:00
Joe Hendrix
cf3949b170
Fix Elf X86 tests. 2018-02-27 07:37:06 -08:00
Joe Hendrix
83fa71b210
Update elf submodule 2018-02-26 14:53:08 -08:00
Iavor Diatchki
22fbaf9d4f Change the types of the patterns, so that matching allows us to learn the type 2018-02-15 17:03:30 -08:00
Joe Hendrix
e3a1b35307
Fix macaw-x86 tests. 2018-01-29 23:19:50 -08:00
Joe Hendrix
5f219026ec
Update submodules 2018-01-29 20:14:42 -08:00
Joe Hendrix
7e144a51f4
Memory interface renamings. 2018-01-29 11:05:19 -08:00
Joe Hendrix
e1e558239e
Minor cleanups. 2018-01-29 01:06:59 -08:00
Iavor Diatchki
5959bfc6f0 Merge branch 'master' of github.com:GaloisInc/macaw 2018-01-26 14:43:50 -08:00
Daniel Wagner
c6dcd09738 regression tests for splitting blocks mid-instruction 2018-01-26 14:09:01 -08:00
Daniel Wagner
dfa21bc40a modify tail-call test
Previously, we asked macaw to discover three functions in the tail-call
test. One of those only ever appeared as a tail call from another
function; currently macaw isn't smart enough to discover that as its own
function (and that's probably okay for now).
2018-01-26 14:09:01 -08:00
Daniel Wagner
293b13cc47 check that the expected functions are all discovered 2018-01-26 14:09:01 -08:00
Iavor Diatchki
9cf05f6f29 Slight improvement to pretty printing. 2018-01-26 11:35:58 -08:00
Iavor Diatchki
a7b5ac73ec Fix comment 2018-01-26 11:35:42 -08:00
Daniel Wagner
fc76fd5dc0 split blocks when we discover a jump into their middle 2018-01-26 10:18:31 -08:00
Daniel Wagner
d61e6d4a7f give an expected block size in x86_64 tests 2018-01-26 10:18:31 -08:00
Joe Hendrix
b3cd6fd049
Fix loop in X86 bvUle simplification. 2018-01-23 16:06:54 -08:00
Joe Hendrix
278b079a49
Fix warnings; remove -Werror 2018-01-21 07:56:04 -08:00
Joe Hendrix
4482229156
Update flexdis 2018-01-16 23:09:42 -08:00
Joe Hendrix
a7c8014269
Update flexdis submodule 2018-01-16 22:38:15 -08:00
Joe Hendrix
b81a51067c
Update submodules 2018-01-16 22:20:34 -08:00
Joe Hendrix
79b5606e3c
Merge remote-tracking branch 'origin/avx' 2018-01-16 15:38:14 -08:00
Joe Hendrix
48001ea6f1
Add updated flexdis constraints. 2018-01-16 15:37:30 -08:00
Joe Hendrix
b7e06e64ee
Progress on macaw-symbolic and macaw-x86-symbolic. 2018-01-16 15:06:31 -08:00
Joe Hendrix
b89f60bf2b
Replace SymbolAddrMap with AddrSymMap for better code reused in reopt. 2018-01-08 12:28:28 -08:00
Joe Hendrix
e5f6a70586
Bump submodules 2018-01-08 10:58:50 -08:00
Joe Hendrix
250c41d40b
Progrsss on symbolic and fixes to x86-support. 2018-01-03 13:18:13 -08:00
Iavor Diatchki
70aaccb406 Merge remote-tracking branch 'origin/master' into avx
# Conflicts:
#	symbolic/src/Data/Macaw/Symbolic.hs
#	symbolic/src/Data/Macaw/Symbolic/CrucGen.hs
#	symbolic/src/Data/Macaw/Symbolic/PersistentState.hs
#	x86/src/Data/Macaw/X86/Getters.hs
2018-01-03 12:01:10 -08:00
Joe Hendrix
622daeb920
Update submodules. 2018-01-02 22:56:06 -08:00
Joe Hendrix
deab99869d
Update for parameterized-utils compat. 2018-01-02 17:31:42 -08:00
Iavor Diatchki
cdb02f2acf Typo 2018-01-02 09:56:42 -08:00
Joe Hendrix
3f32b82943
Merge branch 'master' of github.com:GaloisInc/macaw 2017-12-21 15:42:50 -08:00
Joe Hendrix
a15fc42ed4
Minor updates. 2017-12-21 15:42:33 -08:00
Iavor Diatchki
bb4d8c16c8 Add the rest of the missing instructions that we need for now. 2017-12-20 16:29:38 -08:00
Iavor Diatchki
7afcea48d1 Add some more instructions 2017-12-19 17:20:16 -08:00
Daniel Wagner
febd82f284 get x86 tests building again 2017-12-19 14:09:32 -08:00
Iavor Diatchki
1f2e80f1a5 Implement a couple of instructions 2017-12-18 16:53:27 -08:00
Ben Selfridge
0170d9c639 Fixed an incomplete pattern match by adding an erroneous case 2017-12-15 11:02:44 -08:00
Iavor Diatchki
bee40539ea Use latest version of flexdis in testing sub-module 2017-12-14 17:09:28 -08:00
Iavor Diatchki
60f834625d Move to latest version of flexdis 2017-12-14 17:08:54 -08:00
Iavor Diatchki
74465f8b65 Add a little state to keep track if we are translating an AVX instruciton.
Writes to an XMM register may or may not affect to corresponding YMM
register, depending on the type of instruction we are using.
With SSE instruction, the upper bits of YMM are left as is, while with
AVX the upper bits are set to 0.

The `avxMode` field of the monad keeps track of what insturction we
are translating.
2017-12-14 16:44:02 -08:00
Iavor Diatchki
caa875b4c2 Add support from 256-bit YMM registers. 2017-12-14 16:01:12 -08:00
Iavor Diatchki
6df1aa01a3 Typo in comment. 2017-12-14 15:59:33 -08:00
Iavor Diatchki
384039cdef Merge branch 'master' of github.com:GaloisInc/macaw 2017-12-13 14:40:35 -08:00
Iavor Diatchki
456827d295 Add a place-holder for YMM registers.
This is a temporary patch while we fix it properly, which enables
macaw to build.
2017-12-13 14:40:27 -08:00
Joe Hendrix
a8265ec28d
Bump parameterized-utils submodule. 2017-12-08 11:44:43 -08:00
Joe Hendrix
da8d7a0c7a
Remove IsValue class as it had a single instance. 2017-12-07 23:55:08 -08:00
Joe Hendrix
d7202f7834
Update parameterized-utils version. 2017-12-07 00:47:32 -08:00
Joe Hendrix
b9eda0a9b9
Use more parameterized-utils features. 2017-12-07 00:24:04 -08:00
Joe Hendrix
d2b1b20ea8
Fix typo in fsub name. 2017-12-06 18:42:57 -08:00
Joe Hendrix
32b53b96b1
Migrate floating point code to architecture specific backends.
This should complete the transition so that all App values are total
functions, and functions with side effects are architecture-specific.
2017-12-06 16:58:33 -08:00
Joe Hendrix
4d5b90e285
Begin cleaning up floating point and x86-specific functions. 2017-12-05 13:31:12 -08:00
Joe Hendrix
716de707c2
Fix failing x86 tests broken by last commit. 2017-12-01 15:09:07 -08:00
Joe Hendrix
478e7db31a
Refactor X86 semantics types; add tuples to Macaw. 2017-12-01 13:58:20 -08:00
Joe Hendrix
e0417a09a1
Merge branch 'master' of github.com:GaloisInc/macaw 2017-11-22 14:08:49 -08:00
Joe Hendrix
2bd710b49d
Move global function argument analysis to Macaw; Syscall changes
We also moved the syscall interface to be X86 specific to be compat
with earlier changes.
2017-11-22 14:07:55 -08:00
Joe Hendrix
4377e8c46e
Update for language-c >= 0.6 compat. 2017-11-21 09:59:30 -08:00
Ben Selfridge
a10edcf56a added Cabal to stack.yaml dependencies 2017-11-09 16:13:05 -08:00
Ben Selfridge
bf0b6813d2 add cabal-doctest to stack.yaml 2017-11-09 16:02:34 -08:00
Ben Selfridge
9caacd01ef added needed submodules 2017-11-09 15:00:23 -08:00
Ben Selfridge
b19c7e3ab6 deleted badly added submodules 2017-11-09 14:59:01 -08:00
Ben Selfridge
c39ac71631 still fixing travis 2017-11-09 10:59:47 -08:00
Ben Selfridge
4467a29728 Moved .travis.yml up to macaw root, testing travis-ci again 2017-11-08 14:26:22 -08:00
Ben Selfridge
afeb8f77c9 New Travis script 2017-11-08 12:05:28 -08:00
Ben Selfridge
ff7bff7108 Added submodules to macaw/x86/tests. 2017-11-07 14:40:49 -08:00
Joe Hendrix
9b2b95512d
Add support for memory "regions" to better support relocatable files. 2017-11-07 13:15:03 -08:00
Ben Selfridge
580cb634cd Fixed macaw-x86 test suite, all tests seem to pass fine. 2017-11-01 15:56:54 -07:00
Joe Hendrix
b99927f3b0
Fix issue in architecture-specific statement addresses. 2017-10-31 12:00:09 -07:00
Joe Hendrix
8e9b453189
Simplify demand computation. 2017-10-27 16:24:16 -07:00
Joe Hendrix
f7503f12a5
Generalize ArchStmt. 2017-10-27 15:57:36 -07:00
Joe Hendrix
4c67e08e21
Generalize semantics of architecture-specific term statement.
This also makes some small changes/improvments to the rewriter and
removes redundent argument from x86-backend.
2017-10-27 09:26:26 -07:00
Joe Hendrix
16693d4a63
Generalize disassembler so that it can be used with ST RealWorld. 2017-10-23 13:55:58 -07:00
Joe Hendrix
5eaf2605ed
Add support for adc/sbb. 2017-10-17 11:50:23 -07:00
Joe Hendrix
135add62ae
Minor refactorings so ARM disassembler doesn't need MemSegmentOff. 2017-10-12 23:34:39 -07:00
Joe Hendrix
c95d3e7d0f
Cleanups to Macaw. 2017-10-10 11:38:28 -07:00
Joe Hendrix
b17122e4c5
Fix macaw-symbolic compile error; add additional operands. 2017-10-06 14:35:22 -07:00
Joe Hendrix
dd7c817702
Modify BVTestBit to require arguments have same width. 2017-10-06 11:22:55 -07:00
Joe Hendrix
1ebc6f247b
Make X86Stmt more generic to reuse code in reopt. 2017-10-02 17:02:00 -07:00
Joe Hendrix
c77d1ac421
Remove generic quot/rem ops, and BoolMux; Refactor macaw-symbolic. 2017-10-02 14:40:14 -07:00
Joe Hendrix
7c33bf82e4
Update license information. 2017-09-27 15:59:06 -07:00
Joe Hendrix
4dcb26ebee
Add x86 specific code. 2017-09-27 15:54:43 -07:00