Commit Graph

  • c01f431536 rv64: Add support for Zba, Zbb, Zbc, Zbs (#14) master Timofey Frolov 2024-06-17 11:47:10 +03:00
  • 3e84ecbca9 tests/x86-64: Adjust address for 64k page systems Alexis Engelke 2024-06-07 17:11:12 +02:00
  • e5f04c93b2 Fix LLVM 16-18 build and bump to LLVM 16 Alexis Engelke 2024-06-07 17:05:42 +02:00
  • 837fabd8ad frvdec: Update for Zba, Zbb, Zbc, Zbs support Alexis Engelke 2024-06-07 15:53:02 +02:00
  • 0a574bbe1c basicblock: Replace std::vector with SmallVector Alexis Engelke 2024-05-17 11:12:28 +02:00
  • cba18d5106 x86-64: BSF/BSR with zero source don't modify dest Alexis Engelke 2024-05-17 11:07:21 +02:00
  • c13eb03b0e basicblock: Unify register file creation Alexis Engelke 2024-05-10 12:10:20 +02:00
  • cbc0f586bb callconv: Correct unpack block after control flow Alexis Engelke 2024-05-10 11:56:57 +02:00
  • 2214e91740 general: Drop non-Arch-BasicBlock Alexis Engelke 2024-04-29 18:03:06 +02:00
  • 3d8bd82cfb tests/x86-64: Add more string operation tests Alexis Engelke 2024-04-29 17:57:05 +02:00
  • f93808f59f decoder: Use SmallVector Alexis Engelke 2024-04-24 17:49:37 +02:00
  • b08bd07977 llvm: Add support for LLVM 18 Alexis Engelke 2024-04-24 17:49:23 +02:00
  • f4baf89b35 rv64: Implement LR.D/SC.D non-atomically Alexis Engelke 2024-04-24 17:42:43 +02:00
  • 9e7ce6af46 x86-64/sse: Fix packed shift with immediate Alexis Engelke 2024-04-24 17:41:59 +02:00
  • f1f2bf21e4 x86-64/sse: Implement PSIGNB/PSIGNW/PSIGND Alexis Engelke 2024-02-02 16:56:32 +01:00
  • 210fabeb57 x86-64/sse: Implement PALIGNR Alexis Engelke 2024-02-02 15:40:12 +01:00
  • 055bc94231 x86-64/sse: Unify SseBinOp and SseHorzOp Alexis Engelke 2024-02-02 15:03:33 +01:00
  • 2c7dc5ac67 x86-64/sse: Implement PHADDSW/PHSUBSW Alexis Engelke 2024-02-02 15:01:08 +01:00
  • 4651a3fd34 x86-64/sse: Move horz-to-vert to separate function Alexis Engelke 2024-02-02 15:00:30 +01:00
  • d5219885c8 x86-64/sse: Implement PMADDUBSW Alexis Engelke 2024-02-02 12:08:13 +01:00
  • 8b1736e34c x86-64: Implement POPCNT Alexis Engelke 2024-02-01 16:19:44 +01:00
  • f15eca94c6 callconv: Hoist stores out of merge blocks Alexis Engelke 2024-01-31 12:07:22 +01:00
  • c859f11960 x86-64/sse: Handle zero-idiom for SSE registers Alexis Engelke 2024-01-29 15:54:21 +01:00
  • e8c4be2881 basicblock: Remove unnecessary no-op cast Alexis Engelke 2024-01-20 13:52:53 +01:00
  • b29d5e285e aarch64: Compute some flags lazily Alexis Engelke 2024-01-20 13:52:43 +01:00
  • 6bbdf9796f x86-64/flags: Compute ADD OF lazily Alexis Engelke 2024-01-20 13:51:33 +01:00
  • 296bd05750 regfile: Handle PC specially Alexis Engelke 2024-01-20 13:17:05 +01:00
  • caa79d127c general: Remove compatibility with LLVM < 15 Alexis Engelke 2024-01-17 20:44:50 +01:00
  • a8207825cd tests/driver: Adjust for LLVM 18 API break Alexis Engelke 2024-01-17 19:36:39 +01:00
  • b476ce638c tests/x86-64: Add test for MOVNTDQ Alexis Engelke 2024-01-17 19:36:34 +01:00
  • ff40e3a9a4 basicblock: Use cheaper assertion Alexis Engelke 2024-01-17 19:35:48 +01:00
  • d4cf4283a8 x86-64/sse: Simplify MOVSS/MOVSD code Alexis Engelke 2024-01-17 19:12:27 +01:00
  • 05df75eb5c regfile: Simplify set function naming Alexis Engelke 2024-01-17 19:11:28 +01:00
  • df3ab9d8bf regfile: Remove unnecessary clear method Alexis Engelke 2024-01-17 18:56:43 +01:00
  • 28e7868081 rv64: Simplify StoreFp for new regfile Alexis Engelke 2024-01-17 18:44:17 +01:00
  • ce823a063e rv64: Fix CFG for syscall Alexis Engelke 2024-01-17 18:44:03 +01:00
  • f6a23e0d1a aarch64: Simplify SetScalar for new regfile Alexis Engelke 2024-01-17 18:39:08 +01:00
  • 48b7919e2c tests/driver: Fix output of expected and actual Alexis Engelke 2024-01-17 18:02:59 +01:00
  • c21fc8feb1 x86-64/gp: Improve generated code for LEA Alexis Engelke 2024-01-17 18:02:08 +01:00
  • b9ac916a1d regfile: Use bit or pointer cast Alexis Engelke 2024-01-17 18:01:18 +01:00
  • c67d0d500e regfile: Fix types of lshr Alexis Engelke 2024-01-17 17:57:07 +01:00
  • add6268c65 x86-64: Compute carry flag lazily Alexis Engelke 2024-01-17 14:07:36 +01:00
  • 43803d6820 regfile: Copy all values from single predecessor Alexis Engelke 2024-01-17 13:30:06 +01:00
  • e5a02924d5 regfile: Avoid indirection to register storage Alexis Engelke 2024-01-15 15:24:10 +01:00
  • 186040f941 callconv: Omit undef stores Alexis Engelke 2024-01-15 15:16:27 +01:00
  • 1ba3a33380 basicblock: Avoid phi nodes for exit block Alexis Engelke 2024-01-15 15:15:51 +01:00
  • 290cda4117 x86-64/gp: Special-case XOR zero idiom Alexis Engelke 2024-01-15 14:27:47 +01:00
  • bd491c3412 x86-64/gp: Optimize XOR+DIV and CQO+IDIV sequences Alexis Engelke 2024-01-15 14:11:02 +01:00
  • 27f3d5a59a regfile: Cache extracted facets Alexis Engelke 2024-01-15 14:10:10 +01:00
  • edc4b9e619 regfile: Minor refactoring Alexis Engelke 2024-01-15 14:09:30 +01:00
  • c085a5a743 general: Remove typed pointers Alexis Engelke 2024-01-15 13:39:42 +01:00
  • c5e2c8adad aarch64: Fix syscall not jumping to exit block Alexis Engelke 2024-01-15 12:11:22 +01:00
  • 827f89e992 regfile: Only store one transformed value per reg Alexis Engelke 2024-01-15 11:44:46 +01:00
  • 801f975bea x86-64/gp: Avoid double zext for MOVZX to 32 bit Alexis Engelke 2024-01-15 10:14:29 +01:00
  • 6657a28769 aarch64: Fix zero-extension of floating-point data Alexis Engelke 2024-01-14 18:59:38 +01:00
  • 5ee350834d aarch64: Fix handling of unimplemented system regs Alexis Engelke 2024-01-14 18:47:38 +01:00
  • a59cc141d9 x86-64/flags: Remove unused variable Alexis Engelke 2024-01-14 18:29:39 +01:00
  • 3605a058ee decoder: Fix compilation with LLVM 15 Alexis Engelke 2024-01-14 18:29:25 +01:00
  • b1c2d1f433 tests: Add a few more test cases Alexis Engelke 2024-01-14 18:10:06 +01:00
  • 33fb246251 x86-64/gp: Fix grammar in comment Alexis Engelke 2024-01-14 18:09:44 +01:00
  • 21641dc250 x86-64: Don't load i128 for SSE instructions Alexis Engelke 2024-01-13 15:39:13 +01:00
  • fc5f5a9d74 decoder: Don't inhibit branches in callret mode Alexis Engelke 2024-01-13 15:38:26 +01:00
  • 9230d118a5 regfile: Implement vector zero extensions Alexis Engelke 2024-01-13 11:25:03 +01:00
  • e11ee0deec regfile: Implement vector merging Alexis Engelke 2024-01-13 11:01:51 +01:00
  • b6f00fb8ad lifter: Remove redundant methods Alexis Engelke 2024-01-13 10:43:29 +01:00
  • 7e65fe6286 lifter: Remove unused facet parameter from SetReg Alexis Engelke 2024-01-13 10:38:50 +01:00
  • 47bc33edfa x86-64: Remove unused AVX paramter Alexis Engelke 2024-01-13 10:30:40 +01:00
  • 16c7d95910 regfile: Attach transformation to values Alexis Engelke 2024-01-13 10:07:47 +01:00
  • bf0984585b regfile: Remove unnecessary use of facets Alexis Engelke 2024-01-12 21:07:11 +01:00
  • ea18e1eac0 regfile: Convert flags from facets to registers Alexis Engelke 2024-01-12 20:54:41 +01:00
  • bf085426a6 regfile: Implement integer value merging Alexis Engelke 2024-01-12 20:40:38 +01:00
  • 5340f73953 regfile: Make register write mode explicit Alexis Engelke 2024-01-12 20:09:03 +01:00
  • c9ae6451fb general: Minor performance improvements Alexis Engelke 2024-01-12 19:43:07 +01:00
  • ed7c9eda58 regfile: Refactor "clean" registers Alexis Engelke 2024-01-12 18:44:27 +01:00
  • 1a50b160fc callconv: Create stores only when required Alexis Engelke 2024-01-12 18:35:46 +01:00
  • 43ab5e0c4e regfile: Allow setting precise insertion point Alexis Engelke 2024-01-12 18:30:30 +01:00
  • 743e0b729d basicblock: Remove regfile on pack Alexis Engelke 2024-01-12 17:28:28 +01:00
  • ee6b6b1b16 basicblock: Make regfile replaceable Alexis Engelke 2024-01-12 17:21:49 +01:00
  • 0a3c9ce945 regfile: Move register access into separate method Alexis Engelke 2024-01-12 16:36:08 +01:00
  • 8af5de47b2 regfile: No phis for single predecessor Alexis Engelke 2024-01-12 15:03:39 +01:00
  • d3ccef730d regfile: Drop ssa_copy, store phi nodes directly Alexis Engelke 2024-01-12 14:21:27 +01:00
  • df0d37a1c7 regfile: Major refactoring Alexis Engelke 2024-01-12 14:07:47 +01:00
  • 1a95343150 tests/assembler: Fix memory leaks Alexis Engelke 2024-01-12 11:54:14 +01:00
  • d10cb0beca decoder: Don't compute branch target for calls Alexis Engelke 2024-01-06 17:17:43 +01:00
  • e3d5ddca44 decoder: Move instruction classification from instr Alexis Engelke 2024-01-06 17:13:59 +01:00
  • 171c64e511 basicblock: Store upper bound of predecessors Alexis Engelke 2024-01-06 12:56:08 +01:00
  • 714f836ebc function: Create basic blocks eagerly Alexis Engelke 2024-01-06 12:41:49 +01:00
  • 6e85ffcb10 decoder: Count predecessors while decoding Alexis Engelke 2024-01-06 12:35:39 +01:00
  • 4d97efd195 function-info: Remove unused entry_ip Alexis Engelke 2024-01-06 12:30:36 +01:00
  • 8512a68739 rellume: Remove ll_func_add_instr Alexis Engelke 2024-01-06 12:23:34 +01:00
  • 4774bff2c0 function: Major refactoring Alexis Engelke 2024-01-05 20:32:28 +01:00
  • 8fa83d8f34 function: Store code address ranges Alexis Engelke 2024-01-05 20:31:11 +01:00
  • fd875b1188 function: Do entire lifting in Lift() Alexis Engelke 2024-01-05 18:00:13 +01:00
  • 1a1201e8ea basicblock: Fix endless loop on PHI assignment Alexis Engelke 2023-12-21 16:29:03 +01:00
  • 1c3b723fc1 fadec: Bump Alexis Engelke 2023-12-20 13:41:07 +01:00
  • 622934e3de general: Support LLVM 17 Alexis Engelke 2023-12-20 13:39:04 +01:00
  • 30249616f1 callconv: Drop HHVM Alexis Engelke 2023-12-20 13:37:25 +01:00
  • 09e06ec3ce lifter: Fix pc-relative branches in PIC mode Alexis Engelke 2023-12-20 13:35:14 +01:00
  • 25d497296f tests: Test PIC mode as well Alexis Engelke 2023-12-20 13:33:40 +01:00
  • ce74a4a52c x86-64: Fix invalid IR generated for BT/etc. Alexis Engelke 2023-12-20 13:39:41 +01:00