-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make linux-riscv nativeaot port robust (#112736)
* Fix AOT exception handling on linux-riscv64 * Apply more suggestions Co-authored-by: Filip Navara <[email protected]> * Fix unwind information for allocation helpers * Restore correct FP registers in StackFrameIterator::UnwindFuncletInvokeThunk * Fix register addressing in GcInfoDecoder::GetRegisterSlot * Fix and enable software write watch * Fix COOP frames layout * Fix indirections, comparison and other assembly for write barrier checks * Fix cross-build on Risc-V host * Disable R2R in stage2 build * Fix uninitialized value in RhpPInvoke * Fix register in RhpPInvokeReturn * Initialize FP/RA pointers when creating StackFrameIterator from native context * Fix sign on PROLOG_SAVE_REG_PAIR_INDEXED * Fix more of the logic in write barriers. Needs further audit. * Fix incorrect unwinding information generated for methods with frame size > PAGE_SIZE * Fix emitting jump to bad slot helper * Fix unwind info for universal transitions * Fix comment * Fix flipped RA/FP in universal transition unwinding * WIP: Rewrite thunk code generation * WIP: Fix RhCommonStub * Fix layout of universal translation for unwinding * WIP: Add memory barriers to native AOT asm helpers (#106219) * WIP: Add fences to RhpCheckedLockCmpXchg/RhpCheckedXchg and fix atomicity guarantees of RhpCheckedXchg * Preserve registers in INLINE_GET_TLS_VAR * Preserve a7 as well * WIP: Attempt to fix masks in IsInProlog/TrailingEpilogueInstructionsCount (to be reviewed) * WIP: Fix GC hijacking flags and possible return value trashing * Fix return value trashing * Actually fix the PTFF_THREAD_HIJACK_HI flag in correct file * Apply suggestions from code review Co-authored-by: Tomek Sowiński <[email protected]> * Update src/coreclr/nativeaot/Runtime/ThunksMapping.cpp Co-authored-by: Filip Navara <[email protected]> * Make style consistent * Flip the sign of PROLOG_SAVE_REG_PAIR_INDEXED to match CoreCLR definition and PROLOG_SAVE_REG_PAIR_NO_FP_INDEXED * Fix the last change to sign * Save one mv instruction * Relax FENCE in R2R helpers * Apply suggestiosn from CR review Co-authored-by: Tomek Sowiński <[email protected]> * Update managed defintion of TransitionBlock too * Update TLSDESC comments * Update src/coreclr/nativeaot/Runtime/riscv64/WriteBarriers.S Co-authored-by: Tomasz Sowiński <[email protected]> * Relax semantics of a fence in R2R helper to match ARM64 * Add missing fence in RhpAssignRefRiscV64 (matches ARM code and CoreCLR/Risc-V code) * Match barriers emitted by PalInterlockedOperationBarrier in NativeAOT and equivalent code in CoreCLR in ExchangeObject/CompareExchangeObject --------- Co-authored-by: Filip Navara <[email protected]> Co-authored-by: Tomek Sowiński <[email protected]> Co-authored-by: Jan Kotas <[email protected]>
- Loading branch information
1 parent
e22d62a
commit 2129f3f
Showing
20 changed files
with
214 additions
and
156 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.