200 Commits

Author SHA1 Message Date
Duncan Ogilvie 7055a0c54a Change XGETBV architecture modeling to hypercall 2026-04-08 13:20:13 -04:00
William Tan 56eee94851 fix control-flow decoding and restore smoketests
Handle the synthetic fallthrough sentinel in Sleigh control-flow analysis without indexing past the end of the pcode ops vector. Also fix the aarch32 smoketest flag spelling in CI and keep Nix checks enabled on Darwin so the smoketests run consistently across environments.
2026-03-31 12:50:19 -04:00
kyle-elliott-tob 70ec62035c ci: shift LLVM version window from 15-21 to 17-22
Comment out subnormal (0x1) test inputs for fcvtzu/fcvtzs double-to-
64-bit-integer tests on AArch64. LLVM 22 misselects the SIMD form
(fcvtzu d,d) which drops FE_INEXACT on subnormal inputs.
Upstream: llvm/llvm-project#178603

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 09:49:25 -04:00
Maurice Heumann 70b6127cf8 Only quietize SNaNs in FLD
Non-SNaN values should not be quietized, if the IE bit was previously set.
2026-03-25 10:28:00 -04:00
Duncan Ogilvie 91f04f5eb9 Add a few missing instructions/tests 2026-03-25 09:18:37 -04:00
Duncan Ogilvie 9a1409721c Fix AVX-512 classification for latest XED 2026-03-25 09:18:37 -04:00
Duncan Ogilvie dc1f1d498c Fix functions getting declared in duplicate in TraceLifter 2026-03-25 09:18:37 -04:00
Maurice Heumann 962b68b964 Fix zero extension for MOVD semantics with MMX registers 2026-03-11 08:47:08 -04:00
Maurice Heumann 27b38572f9 Fix PSHUFW instruction semantics 2026-03-11 08:37:59 -04:00
redthing1 63dc622d9d SleighLifter: fix ppc hypercall memory passing 2026-02-10 08:08:06 -05:00
redthing1 21514ad9f0 SleighLifter: fix swapped signedness 2026-02-10 08:08:06 -05:00
Maurice Heumann 20f6e1c544 Add MOVMSKPS instruction semantics (#751) 2026-02-09 23:30:40 -05:00
momo5502 5999b9757f Add SQRTPD semantics 2026-01-05 08:50:22 -05:00
momo5502 df4d60e779 Use __builtin_sqrt instead of using std library functions
__builtin_sqrt is already used in a few other places in the semantics.
This commit just makes this consistent for all sqrt computations.
2026-01-05 08:50:22 -05:00
William Tan 66df15c2ef Fix llvm::Intrinsic::getDeclaration deprecation
`llvm::Instrinsic::getDeclaration` will be removed soon, deprecation started in llvm 21

https://github.com/llvm/llvm-project/pull/111752
https://github.com/llvm/llvm-project/pull/112242
2025-12-16 06:39:13 -05:00
Petra Peuker d580b27b71 Remove warnings 2025-12-13 15:41:50 -05:00
Petra Peuker b9d4267ce8 Added (v)addsub instructons 2025-12-13 15:41:50 -05:00
Petra Peuker d52517c7a1 Added broadcast instructions 2025-12-13 15:41:50 -05:00
Petra Peuker 170c4df43f Extended vmovddup; Added (v)movshdup and (v)movsldup 2025-12-13 15:41:50 -05:00
Petra Peuker cf17ff6d03 Added (V)PMOVZXx instructions 2025-12-13 15:41:50 -05:00
Petra Peuker dcf93e624f Added (V)PMOVSXx instructions 2025-12-13 15:41:50 -05:00
Petra Peuker a0450170ad Added VxMASKMOVx instructions 2025-12-13 15:41:50 -05:00
Petra Peuker 715b432a5d Added lddqu instructions 2025-12-13 15:41:50 -05:00
Petra Peuker 9814ba62d8 Adapt index calucaltion to previous pattern 2025-12-13 15:41:50 -05:00
Petra Peuker 9934cab3a3 Fixed vphaddp* instructions 2025-12-13 15:41:50 -05:00
Petra Peuker ac78918621 Added some vpadd* and vphadd* instructions 2025-12-13 15:41:50 -05:00
Boris Trifkovic 0915596dea Resolved issues with MOVZX. 2025-12-13 00:32:18 -05:00
Matteo ae9a4e97ef Resolved issues with NOP. 2025-12-11 17:36:07 -05:00
Matteo 36c1d3ced3 Resolved issues with MOVSX and MOVSXD. 2025-12-11 08:00:51 -05:00
wizardengineer 4f08aef71d Added support for FADD 2025-12-02 08:56:55 -05:00
wizardengineer 6e5d3ada68 Resolved issues with MULX 2025-12-02 08:56:55 -05:00
wizardengineer e1d049e9c9 Resolved LZCNT & TZCNT test failed with xed 2025 2025-12-02 08:56:55 -05:00
wizardengineer 0aa74ba2b1 Fix for Test error with latest XED 2025-12-02 08:56:55 -05:00
Duncan Ogilvie f8acc718c9 Remove deprecated LINK_PUBLIC/PRIVATE specifier 2025-11-23 16:30:47 -05:00
Duncan Ogilvie 9a6868a27d Fix X87 lifting on LLVM 18+ 2025-11-05 20:46:01 -05:00
Duncan Ogilvie 1be540eeef Implement FMADD in terms of std::fma 2025-11-05 20:46:01 -05:00
Duncan Ogilvie 6082054723 Fix bug with uninitialized MONITOR variable causing UB 2025-11-05 20:46:01 -05:00
Duncan Ogilvie eba0652f86 Replace cfenv dependency with new remill FPU intrinsics 2025-11-05 20:46:01 -05:00
Duncan Ogilvie ac78aa9dca Switch to standalone sysroot for semantics compilation 2025-11-05 20:46:01 -05:00
Duncan Ogilvie ddef25db7c Add support for LLVM 15-21 2025-11-05 20:46:01 -05:00
Matteo e42ac37294 Fix UBSan error when computing the state field offsets. 2025-11-05 20:46:01 -05:00
cctv130 b6fc70f0f4 CMake: update to C++20, clean up properties, optimize fetch content (#721)
- Enable C++20 on both Windows and Linux
- Remove unnecessary set_property calls to silence LOCATION warnings
- Replace duplicate -fPIC flags with INTERFACE_POSITION_INDEPENDENT_CODE
- Set FETCHCONTENT_BASE_DIR to speed up sleigh and ghidra-fork downloads/builds
- fixed: Does not match the generator used previously: Unix Makefiles,use ninja instead
2025-09-05 17:55:23 -04:00
cctv130 e272b48e84 fix: windows clang build (#719)
* Update settings.cmake

Fix the issue where debugging on Windows in VSCode doesn’t work

* fix: windows clang build

The following flags are not supported in non-MSVC environments
/EHsc /wd4141 /wd4146 /wd4180 /wd4244 /wd4258 /wd4267 /wd4291
/wd4345 /wd4351 /wd4355 /wd4456 /wd4457 /wd4458 /wd4459 /wd4503
/wd4624 /wd4722 /wd4800 /wd4100 /wd4127 /wd4512 /wd4505 /wd4610
/wd4510 /wd4702 /wd4245 /wd4706 /wd4310 /wd4701 /wd4703 /wd4389
/wd4611 /wd4805 /wd4204 /wd4577 /wd4091 /wd4592 /wd4324

Update cmake_minimum_required(VERSION 3.21) to remove CMake warning.
2025-08-18 17:42:31 -04:00
Maurice Heumann f59f129753 Pass undef if semantic function argument is unused (#716)
Remill tries to infer the proper type of an argument for a semantic function.
If the argument is unused that won't work and yields wrong results.
However, in that case, it doesn't matter what's passed,
as nobody uses the value, so passing undef works and prevents issues.
2025-07-03 20:36:28 -04:00
Masashi Yoshimura aa886a2244 Fix AArch64 breakpoint exception handling to use builtin fuctions or BRK instruction. (#714) 2025-05-13 12:47:08 -04:00
Duncan Ogilvie 7f091d4256 Remove [[gnu::const]] (readnone) from __remill intrinsics (#710)
* Remove [[gnu::const]] (readnone) from __remill intrinsics

* Remove FindPureIntrinsic and SetMemoryReadNone
2024-07-17 12:32:00 -04:00
Masashi Yoshimura 92d1867d1a Fix the offset of STUR and LDUR of AArch64 instructions. (#708) 2024-05-11 21:49:42 -04:00
2over12 874490a894 Fix placement of 32 bit regs on e500 and populate the low bits of PC on BE (#702)
* be fixes

* decriptive names

* fix tests
2024-02-28 11:16:37 -05:00
2over12 608acf8edd Fix big endian type conversions for registers (#699)
* add conversion checking

* Update lib/BC/SleighLifter.cpp

Co-authored-by: William Tan <1284324+Ninja3047@users.noreply.github.com>

---------

Co-authored-by: William Tan <1284324+Ninja3047@users.noreply.github.com>
2024-02-14 13:43:25 -05:00
2over12 391261923a actually call branch taken store (#697) 2024-01-16 07:50:56 -05:00