MerryMage
2d348d2d68
backend/x64: Add macOS exception handler with fastmem support
2020-04-22 21:06:18 +01:00
MerryMage
6edc95e9eb
CMakeLists: Put -Wfatal-errors behind a CMake flag
2020-04-22 21:04:23 +01:00
Lioncash
9d33ea3136
CMakeLists: Specify the /volatile flag with standard-conforming semantics
...
Makes Windows builds more standard-compliant. Given we currently make no
use of volatile, and the libraries we currently use don't use it any
meaningful way, this is safe to specify without worrying.
2020-04-22 21:02:47 +01:00
Lioncash
0d3375fc22
CMakeLists: Add /Zc:externConstexpr compilation flag
...
Improves standard conformance on Windows builds.
2020-04-22 21:02:47 +01:00
Lioncash
3b2b47b522
CMakeLists: Remove setting of CMAKE_WARN_DEPRECATED
...
CMake documentation states:
"If this variable is not set, CMake behaves as if it were set to TRUE."
So this isn't needed, as it's the default behavior.
2020-04-22 21:02:47 +01:00
Lioncash
df996a8375
CMakeLists: Turn generic target path into an error
...
There's currently no way this path can occur and result in any
functioning executable. The recompiler backends are platform-specific.
If those platforms aren't available, then it's quite literally
impossible to use this library for anything meaningful. Instead of
defining a generic architecture and continuing on, notify the developer
that their platform is not currently supported.
2020-04-22 21:02:47 +01:00
Lioncash
750ceb9701
CMakeLists: Remove detection of 32-bit platforms
...
We currently have no plans to add 32-bit host architecture support, so
we don't even need to check for these platforms.
2020-04-22 21:02:47 +01:00
MerryMage
d5b9c4a4bb
block_of_code: Hide NX support behind compiler flag
...
Systems that require W^X can use the DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT cmake option.
2020-04-22 20:53:46 +01:00
Lioncash
ed11c7d904
CMakeLists: Add detection for Aarch64 compiler environments
...
Just closes a small hole in architecture detection for the ARM family.
2020-04-22 20:46:17 +01:00
Lioncash
cd0b71159a
CMake: Make FindUnicorn introduce a unicorn target
...
Makes the find module do all the work of properly setting up the target instead of needing to do it in the main CMakeLists file.
2020-04-22 20:46:16 +01:00
MerryMage
e97581d063
fuzz_with_unicorn: Print AArch64 disassembly
2020-04-22 20:46:14 +01:00
MerryMage
a90e4955ab
CMakeLists: Ignore warnings within xbyak
2020-04-22 20:46:14 +01:00
MerryMage
30936f5e94
travis: Test with disabled CPU feature detection
...
Ensure that fallbacks are working correctly.
2020-04-22 20:44:37 +01:00
MerryMage
a59e9ad9c6
travis: Run A64 tests
2020-04-22 20:42:45 +01:00
MerryMage
d5725de26a
tests/A64: Fuzz against unicorn
2020-04-22 20:42:45 +01:00
MerryMage
cde2d48eb9
CMakeLists: CMAKE_CXX_STANDARD as no effect on MSVC until CMake 3.10
...
We add the /std:c++latest flag to DYNARMIC_CXX_FLAGS to fix this.
2020-04-22 20:39:27 +01:00
MerryMage
89e9ce8aff
Bump requirements to C++17
2020-04-22 20:27:15 +01:00
MerryMage
0af1e7723d
CMakeLists: Fixup boost
...
* boost is part of the public interface.
* Consider boost a system library so warnings from boost do not cause a build failure.
* If the parent project defines boost, use that.
2020-04-22 20:26:40 +01:00
MerryMage
d00ce34432
CMakeLists: Default to a Release build
2020-04-22 20:26:12 +01:00
MerryMage
5beb61913b
CMakeLists: Remove unnecessary -msse3 option
2017-07-08 16:33:20 +01:00
Yuri Kunde Schlesner
8f15e3f70c
CMakeLists: Enable stricter C++ conformance mode in MSVC
2017-06-12 07:57:46 +01:00
Yuri Kunde Schlesner
38eb7e0314
emit_x64: Use alternative Xbyak names for and, or, xor
...
Also enabled XBYAK_NO_OP_NAMES, allowing us to stop using
-fno-operator-names.
2017-06-12 07:57:46 +01:00
Lioncash
9906be746f
CMakeLists: Make boost an interface library target
...
Gets rid of the use of a non-target include and makes libraries
explicitly link against the identifier name in order to get includes.
2017-03-04 11:52:32 +00:00
Lioncash
f9e7e85308
externals: Make catch an interface target
...
Eliminates top-level inclusion of the headers with include_directories()
and instead utilizes it on a by-target basis using target_include_directories().
2017-02-26 13:43:47 +00:00
Lioncash
c92a6a5eb7
CMakeLists: Change set into a list append
...
Same thing, less repetition.
Also puts quotes around the added path to correctly handle any spaces in paths.
2017-02-23 15:13:19 +00:00
MerryMage
e8b6e76fbf
CMakeLists: Drop -Wno-unused-parameter
2017-02-22 23:52:18 +00:00
Lioncash
a2d4db575f
CMakeLists: Drop FATAL_ERROR from cmake_minimum_required
...
This is ignored by CMake 2.6 and higher.
2017-02-22 20:24:03 +00:00
MerryMage
a77710e5cf
CMake: Add option DYNARMIC_WARNINGS_AS_ERRORS
2017-02-04 20:31:10 +00:00
MerryMage
cc58666c06
CMakeLists: Use target_compile_options intead of add_compile_options
2016-12-19 00:48:25 +00:00
MerryMage
0e8b626d87
CMakeLists: Globally disable MSVC warning C4592
...
C4592: Symbol will be dynamically initialized (implementation limitation)
2016-12-15 21:09:55 +00:00
MerryMage
91e851a991
CMakeLists: Enable /W4 on MSVC
2016-12-15 20:52:23 +00:00
Yuri Kunde Schlesner
34e19f135c
CMake: Re-use external xbyak target if present ( #62 )
2016-12-12 14:23:42 +00:00
Mat M
1dc1eaa452
CMakeLists: Enable more warnings for MSVC ( #58 )
2016-12-05 12:45:35 +00:00
MerryMage
52fdec5892
CMakeLists: Add support for LLVM on Windows
...
The LLVM project provides a clang-based MSVC compatible toolset for
Microsoft Visual Studio. This suite is sometimes refered to as "clang-cl".
This patch adds a few compiler flags to support this toolset.
2016-12-03 16:12:51 +00:00
MerryMage
2c1818ece9
CMakeLists: Downgrade -msse4.1 to -msse3.
...
Virtually everyone supports SSE3 except for first-generation devices.
2016-09-11 16:21:35 +01:00
Mat M
858796a029
Eliminate variable shadowing warnings with MSVC ( #17 )
2016-09-04 11:30:57 +01:00
MerryMage
320db36219
CMakeLists: Add DYNARMIC_TESTS option so one can turn off testing
2016-09-02 12:29:19 +01:00
MerryMage
f1c988aa8d
CMakeLists: Lower cmake version requirement from 3.4.1 to 3.2
2016-09-02 12:26:47 +01:00
Lioncash
ee4b30eee4
externals: Add fmt as a submodule
2016-08-26 13:13:19 +01:00
MerryMage
ed3a686d1d
Implement public header files
2016-08-26 00:44:50 +01:00
MerryMage
1f329b2fbf
CMakeLists: /DNOMINMAX for MSVC
2016-08-25 17:37:35 +01:00
MerryMage
e32812cd00
Port x64 backend to xbyak
2016-08-25 16:18:17 +01:00
Lioncash
0ebad78432
CMakeLists: Warn when casting away cv-qualifiers from pointers
...
Warns whenever this type of casting isn't done via const_cast.
2016-08-22 23:24:02 +01:00
Lioncash
fd5362e968
CMakeLists: Invert if statement
...
Same thing, less wordy.
2016-08-22 15:55:39 +01:00
Lioncash
723ce801c6
CMakeLists: Warn on deprecated API usages
2016-08-22 15:55:39 +01:00
Lioncash
1bedd3bd7f
CMakeLists: Clean up
...
Moves functions out of the main CMakeLists file into module files that
can just be included whenever necessary. This also uses the CMake
provided variables for enforcing compiler requirements.
2016-08-22 15:55:39 +01:00
MerryMage
4d127c19dd
Common: Add a memory pool implementation, remove use of boost::pool
2016-08-06 20:41:00 +01:00
Tillmann Karras
af27ef8d6c
Optionally disassemble x86_64 code using LLVM
2016-08-05 02:08:41 +01:00
MerryMage
e60cea3a54
Add -pedantic-errors compilation flag
2016-08-01 19:54:31 +01:00
MerryMage
cd86ef4236
Add -DBOOST_POOL_NO_MT as a compiler flag
2016-07-23 05:37:07 +01:00