3 Commits

Author SHA1 Message Date
Peter Goodman 026ea1afec Issue 150 lift bin dir (#167)
* Added semantics and tests for SDIV

* Semantics and tests for SCVTF.

* Working on integer to/from float conversion bugs related to managing the fpu status register.

* Switch to using the check float function wrapper

* Remove unintentional call to fetestexcept

* Adding in a compiler reordering barrier.

* Added inline assembly that will force clang's optimizer to give up and filed a clang bug

* Adds some trailing spaces into some files. Re-enables all aarch64 tests.

* Added semantics and tests for SDIV

* Semantics and tests for SCVTF.

* Switch to using the check float function wrapper

* Remove unintentional call to fetestexcept

* Added inline assembly that will force clang's optimizer to give up and filed a clang bug

* Adds some trailing spaces into some files. Re-enables all aarch64 tests.

* Bringing the aarch64 branch back in line with master.

* Adds in a test and ISEL for LDR_BL_LDST_REGOFF, and fixes up the instructions in some SMOV and UMOV tests.

* Various fixes and some minor debugging aids for aarch64

* Resets the fenv before running lifted code.

* All existing aarch64 tests should now pass.
2017-11-29 22:53:58 -05:00
Peter Goodman bed610be6b Issue 137 lift bin ls (#142)
* Post-decoder, semantics, and tests for BFM.

* Semantics and tests for ANDS

* Minor naming conflict fix

* Semantics and tests for SMADDL and SMULH

* Semantics and tests for MADD

* Minor symbol renaming fix

* Semantics and tests for EXTR, which also implements ROR

* Minor fix to number of arguments to test

* Semantics, but NO tests for LSLV, LSRV, ASRV, and RORV.

* Semantics and tests for ORN

* Minor fix

* Semantics for SBC, but no tests. Added an AddWithCarryNZCV primitive, untested

* Missing two's complement negation in subs using new addwithcarrynzcv

* Tests for SBC. Semantics and tests for SBCS

* Semantics and tests for UCVTF

* Update state save/restore code to record SIMD regs

* Attempt to fix save/restore code

* More attempts at getting the save/restore assembly right, this time with the fpsr bits.

* More fixes

* More tests extracting the fpsr state. Also trying without including RestoreState.S. I don't remember why I had that.

* Semantics for SVC and BRK
2017-09-25 13:29:10 -04:00
Peter Goodman bef332fd2a Aarch64 tester (#128)
* Added in more aarch64 instructions. Fixed some x86 instructions. The x86 test cases now exercise each test through every possible combination of flags.

* Adding missing files

* Another missing file

* Rename file

* Fixup some macros

* IPR

* More improvements on the test runner

* Test runner fixes related to me not being familiar with aarch64 assembly

* Fixing default data layout

* Trying to use llc to compile bitcode to aarch64 assembly. wth.

* Revert back to using the CMAKE_BC_COMPILER for building the test assembly file instead of the whole CMAKE_LL_COMPILER stuff, now that I've adjusted cxx-common to use the right build target for aarch64.

* Documentation updates. Fixes for aarch64.

* Making progress. The native tests can run, but the first lifted test faults. Not yet sure why.

* Weirdest issue is happening on aarch64. A pointer argument is being compiled to an integer, and that's really screwing things up.

* Add caching of the libraries path to the main cmakelists to avoid having to re-run build.sh all the time when the TRAILOBITS_LIBRARIES env var is not globally defined. Experimenting with trying to force the semantics to be compiled using the x86_64 target, regardless of host arch, or modelled arch of the semantics. This is to try to get around the issue where a single-element struct containing a pointer is lowered into a uintptr_t when passed by value as an argument on aarch64.

* Alright, falling back on handling this problem in the lifter (for now, at least). Really not ideal.

* Test runner works afaict
2017-08-04 15:24:46 -04:00