Commit Graph

2735 Commits

Author SHA1 Message Date
Merry
fae1d604e4 emit_arm64_memory: Use LDAR and STLR instead of barriers 2023-01-03 16:57:11 +00:00
Alexandre Bouvier
4bf4d6565e cmake: allow shared llvm linking 2022-12-31 23:14:38 +00:00
Merry
300046b60b backend/arm64/address_space: Assert that code_cache_size <= 128 MiB 2022-12-31 16:06:56 +00:00
Merry
a7523af706 CMakeLists: Add <oaknut/oaknut.hpp> to precompiled headers 2022-12-31 15:21:18 +00:00
Merry
3bdfbdb793 address_space: Block info should be associated with the entry_point, not the LocationDescriptor
This is because a LocationDescriptor can have multiple possible emitted blocks (only zero or one of which is the currently active
block). This allows us to store information for previously invalidated blocks, which is important because we can invalidate
blocks in the middle of executing them.
2022-12-31 14:54:01 +00:00
Merry
9117cc101a a64_address_space: Fix ABI push/pop mismatch 2022-12-30 20:49:22 +00:00
Merry
11d73fedde backend/arm64: Fix argument to AddTicks callback 2022-12-29 20:20:26 +00:00
merry
2492970039 emit_x64_vector_floating_point: AVX implementation for EmitFPVectorMinMaxNumeric 2022-12-29 19:38:45 +00:00
Merry
90d6a51f82 A32: Implement VMAXNM, VMINNM (ASIMD variant) 2022-12-29 19:08:45 +00:00
Merry
860ce278f9 simd_three_same: Use FPVector{Max,Min}Numeric IR instructions 2022-12-29 19:08:45 +00:00
Merry
7cb9254e9f IR: Implement FPVector{Min,Max}Numeric 2022-12-29 19:08:42 +00:00
Merry
c8cd37898b emit_x64_vector_floating_point: Remove erroneous AVX512 implementation in EmitFPVectorMinMax 2022-12-29 15:06:42 +00:00
Macdu
1fa1935d7c frontend/A32, ir: Add missing include 2022-12-26 17:52:39 +00:00
Merry
7a2083b603 exception_handler: Minimize arm64 FakeCall 2022-12-11 17:34:28 +00:00
Merry
e07dde9ed5 emit_arm64_memory: Initial fastmem implementation 2022-12-11 17:26:49 +00:00
Merry
f4727c4ddb backend/arm64/{a32,a64}_address_space: Fix wrapped functions 2022-12-11 17:07:40 +00:00
Merry
8e01ded5fd CMakeLists: Add missing file 2022-12-11 14:57:20 +00:00
Merry
2ea2e44f93 backend/arm64: Implement fastmem infrastructure 2022-12-11 14:57:05 +00:00
Merry
3eddbf8428 address_space: Implement InvalidateBasicBlocks 2022-12-11 14:53:36 +00:00
Merry
84ca6fef0d address_space: Add ReverseGet 2022-12-11 14:45:32 +00:00
Merry
407a9d202a exception_handler_posix: Cleanup 2022-12-11 10:59:11 +00:00
Merry
d635b12b84 exception_handler_posix: Support arm64 backend 2022-12-11 02:51:44 +00:00
Merry
59fc92ee6e backend/arm64/a64_address_space: Avoid use of stack in Emit*Read128CallTrampoline 2022-12-10 23:56:40 +00:00
Merry
e88c89ff47 emit_arm64_memory: Call prewrapped fallback functions 2022-12-10 23:48:35 +00:00
Merry
8f243089e0 backend/arm64/abi: Implement ToRegList 2022-12-10 23:12:04 +00:00
Merry
c01d27bb7c backend/arm64: Inline page table implementation
Co-Authored-By: Liam <byteslice@airmail.cc>
2022-12-10 21:51:10 +00:00
Merry
c4226ba25b backend/arm64: Implement Emit*CheckMemoryAbort 2022-12-10 18:38:53 +00:00
Merry
4fdc42182b backend/arm64/abi: Reserve registers for pagetable and fastmem arena 2022-12-07 00:41:35 +00:00
Merry
d6b58b268b arm64/emit_context: Add deferred_emits 2022-12-07 00:40:42 +00:00
merry
ac0a20795a emit_arm64_memory: Simplify interface to just require a bitsize 2022-12-06 15:45:16 +00:00
merry
f8d8618af1 emit_arm64: Passthrough pagetable information 2022-12-06 14:53:14 +00:00
Merry
ec1f117665 backend/arm64: Merge memory handling 2022-12-05 22:34:00 +00:00
Merry
7660da4909 backend/arm64: Fix exclusive writes 2022-12-05 21:11:51 +00:00
Merry
2c87e2f76f a64_address_space: Simplify 128-bit Q0->{X2,X3} transfer 2022-12-03 11:16:26 -05:00
Merry
6960d29868 a64_address_space: Remove fpsr load in step_code 2022-12-03 11:16:26 -05:00
Merry
4f1f7c8e97 arm64/reg_alloc: Remove PrepareForCallReg and PrepareForCallVec 2022-12-03 11:16:26 -05:00
Merry
73eecfbaef emit_arm64_vector_floating_point: Simplify FPVectorAbs16 2022-12-03 11:16:26 -05:00
Merry
cf704a460d EmitTwoOpFallbackWithoutRegAlloc: Simplify 2022-12-03 11:16:26 -05:00
Merry
6965095cb9 a64_address_space: Reorder declaration appropriately 2022-12-03 11:16:26 -05:00
Merry
c30ecd4d0b a64_address_space: Don't load fpsr here 2022-12-03 11:16:26 -05:00
Merry
8f9d1dbf4e address_space: Deduplicate {A32,A64}AddressSpace 2022-12-03 11:16:26 -05:00
Merry
0707aa3a04 emit_arm64: Remove is_a64 2022-12-03 11:16:26 -05:00
Merry
167ba85ce8 emit_arm64_a64: Implement A64GetCNTPCT 2022-12-03 11:16:26 -05:00
Merry
59ccccdc26 fixup 2022-12-03 11:16:26 -05:00
Merry
bcb5948ea2 GetNZCVFromOp: Ensure NZ00 2022-12-03 11:16:26 -05:00
Merry
26cef90d81 reg_alloc: Q0 is scratch and needs to be moved 2022-12-03 11:16:26 -05:00
Merry
f7a092c06b emit_arm64_vector: Swap arguments of EmitSaturatedAccumulate 2022-12-03 11:16:26 -05:00
Merry
3fd19aac99 emit_arm64_floating_point: Implement ToOdd for FPDoubleToSingle 2022-12-03 11:16:26 -05:00
Merry
b26588123e a64_interface: Remove jit_interface member 2022-12-03 11:16:26 -05:00
Liam
21b4211414 Add test for isolated GetNZCVFromOp 2022-12-03 11:16:26 -05:00