summaryrefslogtreecommitdiff
path: root/src/vm/arm64/asmhelpers.S
AgeCommit message (Collapse)AuthorFilesLines
2020-09-21[Tizen] Add RelativeFixupPrecode for arm64, which replaces FixupPrecode in ↵submit/tizen/20200921.230336accepted/tizen/unified/20200922.034817Gleb Balykov1-3/+26
FNV images
2020-07-27Implement genProfilingEnterCallback genProfilingLeaveCallback on Arm64 ↵submit/tizen/20200731.014213accepted/tizen/unified/20200731.145700Mikhail Kurinnoi1-0/+54
(dotnet/coreclr#26460) * Split genProfilingEnterCallback and genProfilingLeaveCallback into architecture specific versions * Remove redundant genStackLevel save/restore logic on Arm, Arm64, Amd64 * Implement JIT_ProfilerEnterLeaveTailcallStub in assembly * Define RBM_PROFILER_{ENTER,LEAVE,TAILCALL}_TRASH for TARGET_ARM64 * Define REG_PROFILER_{ENTER,LEAVE}_ARG_FUNC_ID and RBM_PROFILER_{ENTER,LEAVE}_ARG_CALLER_SP * Simplify r0Trashed logic in src/jit/codegenarm.cpp * Remove wrong comment in src/jit/codegenarm.cpp * On Arm genPrologPadForReJit does nothing so remove it in src/jit/codegenarm.cpp * Implement LinearScan::BuildNode for GT_PROF_HOOK and GT_RETURN in src/jit/lsraarm64.cpp * Shouldn't a call to CORINFO_HELP_PROF_FCN_TAILCALL be marked as a No-GC? * Implement genProfilingEnterCallback genProfilingLeaveCallback in src/jit/codegenarm64.cpp * Implement NYI profiler methods in src/vm/arm64/profiler.cpp * Implement ProfileEnterNaked ProfileLeaveNaked ProfileTailcallNaked in src/vm/arm64/asmhelpers.S * Implement profiler helpers on win-arm64 * Remove logic for !FINAL_FRAME_LAYOUT in codegenarm64.cpp * Remove unused macro in src\jit\target.h * genProfilingLeaveCallback ignores helper on arm in src\jit\codegenarm.cpp * Refactor genProfilingLeaveCallback in src\jit\codegenarm.cpp Commit migrated from https://github.com/dotnet/coreclr/commit/d88bc184d054fe8e4915964330ca65378d59ef27
2020-06-26Fix a FNV error on arm64 (#286)정동헌/Common Platform Lab(SR)/Principal Engineer/삼성전자1-0/+2
Simple HelloWorld app can run with NI of System.Private.CoreLib.dll, HelloWorld.dll and System.Console.dll
2019-05-22Stop compiling fragile NGen support into the runtime (#24625)Jan Kotas1-1/+3
2019-05-14Fix more save/restore code for HVAs (#24434)Carol Eidt1-6/+6
Fix OnHijackTripThread. Re-enable the mandelbrot-7 test. Fix #24224
2019-04-04Fix MUSL ARM64 cross buildJan Vorlicek1-1/+1
There were two issues: * the cross/toolchain.cmake was unconditionally setting the linker to ld.gold. This is not wanted in general and the ld.gold cannot link arm64 MUSL stuff correctly (it leaves a couple of TLS symbols as undefined) * the src/vm/arm64/asmhelpers.S was referencing a global variable using absolute relocation, which is not allowed in shared libraries on MUSL based Linux distros.
2019-02-01Preserve Vector Arg registers on Arm64 (#22257)Carol Eidt1-12/+12
* Preserve Vector Arg registers on Arm64 Fix #14371
2019-01-08Fix write barrier bounds checks for ARM64 UnixAditya Mandaleeka1-3/+15
2018-10-04Remove AppDomain unload (#20250)Jan Vorlicek1-113/+0
* Remove AppDomain unload This change removes all code in AppDomain that's related to AppDomain unloading which is obsolete in CoreCLR. It also removes all calls to the removed methods. In few places, I have made the change simpler by taking into account the fact that there is always just one AppDomain.
2018-08-09Update DynamicHelper for Unix to match Win.Aditya Mandaleeka1-1/+1
2018-08-07Fix non-Windows assembly code to match Windows calldescr/arg reg changes.Aditya Mandaleeka1-2/+2
2018-05-07Arm64 debugger step into behavior (#17912)David Wrighton1-3/+3
- Fix #ifdef in StubManagerHelpers::StubGetSecondArg that erroneously referred to TARGET_ARM instead of TARGET_ARM64 - Add condition in StubManagerHelpers::GetTailCallTarget to refer to X12 as is used by the various helpers that can pause in the midst of stepping - Fix StubDispatchFixupStub to use X12 as tail call register instead of X9 to match the other tail-calling stubs
2018-04-18Fix ephemeral limits checks in write barrier for ARM64 (#17641)Jan Vorlicek1-2/+2
The code was incorrectly using signed conditions, which doesn't work for server GC where the high ephemeral limit is 0xffffffffffffffff and so it was checking if the address is less than -1, which is never the case. So the card table was never updated.
2017-11-18Delete unused Thread::YieldTask (#15091)Jan Kotas1-2/+0
2017-09-07Merge pull request #12334 from sdmaclea/PR-Optimize-Jit-WriteBarriersJarret Shook1-50/+130
[Arm64] Optimize JIT_WriteBarriers
2017-08-25[Arm64/Unix] Add JIT_Stelem_Ref helper (#13588)Steve MacLean1-0/+97
2017-08-25[Arm64] Optimize JIT_WriteBarriersSteve MacLean1-50/+130
Fixes #5833 Fixes #11374 Fixes #12197
2017-07-24[Arm64] Pass ResolveCacheElem in DispatchToken to match AMD64Steve MacLean, Qualcomm Datacenter Technologies Inc1-0/+1
2017-06-15Revert "[Arm64] JIT_WriteBarrier optimization (#12227)"Jarret Shook1-116/+36
This reverts commit b5914c8d1b20be898b8982a4dfcf9d8e9046b2ec.
2017-06-14[Arm64] JIT_WriteBarrier optimization (#12227)Steve MacLean1-36/+116
* [Arm64] JIT_WriteBarrier optimization Add skipEphemeralCheck if gcServer=1 Copy all gc parameters into a literal pool which fits in single cache line Add dmb ishst on gcHeap changes Reduce unpredictable branches Remove unneeded instructiuons Fixes #11374 Fixes #12197 * [Arm64] fix typo in asm * Fixup asm * [Arm64] Revise per comments Nits - Whitespace, Labels to PascalCase Fix state change order Add Suspend/Resume to fix race Fix errors in Windows arm64 assembly * [Arm64] Remove SuspendEE/RestartEE in StompWriteBarrierResize * Use Volatile<> for g_highest_address * Revise synchronization per comments
2017-06-08[Arm64] stlr for JIT_WriteBarrierSteve MacLean, Qualcomm Datacenter Technologies, Inc1-2/+1
2017-06-08[Arm64] Use ish domain JIT_WriteBarrierSteve MacLean, Qualcomm Datacenter Technologies, Inc1-2/+2
2017-05-05[Arm64/Unix] Enable FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP (#11375)Steve MacLean1-0/+33
* [Arm64/Unix] Enable FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP * [Arm64/Unix] Enable FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
2017-04-15[Arm64] Fix assembly errors (#10977)Steve MacLean1-18/+18
* [Arm64] Fix assembly errors * [Arm64] Static use ldrb w2, [x2, w1, UXTW] * Revert changes to src/vm/arm64/asmhelpers.asm
2017-04-12Add platform (x64 & arm64) specific optimized jit helpers for statics access ↵Rahul Kumar1-0/+57
(#10912)
2017-03-01[Arm64/Unix] Fix stack unwinding (#9877)Steve MacLean1-1/+7
This restore the functionality lost by #9866 w/o functional loss
2017-02-24Remove NakedThrowHelper and ifdef-out its callers (#9771)Jan Vorlicek1-21/+0
This change removes NakedThrowHelper function for Unix since it was not used. It also ifdefs out its upstream callers.
2017-02-24[Linux/ARM,ARM64] Fix undefined FixContextHandler issue (#9755)Jonghyun Park1-1/+1
2017-02-17[ARM64/Unix] (#9500)Steve MacLean1-91/+418
* [Arm64/Unix] Update arm64 *.S files to match *.asm * [Arm64/Unix] Fix CONTEXTToNativeContext() * [Arm64/Unix] ThrowExceptionFromContextInternal * [Arm64/Unix] Preserve x8 argument register * [ARM64/Unix] Add CFI directives Add native unwind info * [Arm64/Unix] Fix RtlRestoreContext * [Arm64/Unix] Restore FP from CurrentContextPointers * [Arm64/Unix] fix pointer math * [Arm64/Unix] Fix CallDescrWorkerInternal personality * [Arm64/Unix] More Fp fixups * [Arm64/Unix] CallEHFunclet machine state Restore non-volatile machine state in CallEHFunclet * [Arm64/Unix] CallDescrWorkerInternal Use empty stack slot to save argument * [Arm64/Unix] RtlVirtualUnwind update pointers * [Arm64] LazyMachState fixes * [Arm64/Unix] disable USE_REDIRECT_FOR_GCSTRESS When FEATURE_PAL is enableds USE_REDIRECT_FOR_GCSTRESS is not supported * [Arm64] ClearRegDisplayArgumentAndScratchRegisters() * [Arm64] Remove unnecesary copy in TransitionFrame * [Arm64/Unix] Fix comment per review * [Arm64/Unix] move constants per review * [Arm64/Unix] Use ldp per review Also fix indentation * [Arm64/Unix] Fix indentation per review * [Arm64/Unix] Remove m_Unwound per review comments * [Arm64/Unix] Use PREPARE_EXTERNAL_VAR to access globals * [Arm64/Unix] Fix more whitespace per earlier review comments
2017-02-05Port 121d095ed0b0076fb1c7ff59e6446fd19d506b32 from Windows to Linux (#9346)Frederik Carlier1-2/+2
2017-02-05Port #5821 to Linux (#9347)Frederik Carlier1-1/+2
2017-01-13Fixes to make runtime work on ARM64 Linux (#8947)Jan Vorlicek1-12/+77
This is a result of attempt to bring up CoreCLR on ARM64 Android. The bring up is on hold now, but I want to check in the changes that added ARM64 asm helpers and fixed general Linux ARM64 issues.
2016-06-15[ARM64/Linux] Fix `error: index must be an integer in range.`Sung-Jae Lee1-8/+7
- Fix invalid varible name `*X19_X28' to '*X19_X29' - Remove code for capturing `fp` status.
2016-04-12Fix hardware exception handling in native code on BSDJan Vorlicek1-5/+0
There is a problem with hardware exception handling when the exception happens in native code and it is under the HardwareExceptionHolder on FreeBSD and NetBSD. The problem was that the C++ unwinder was unable to cross the signal trampoline. This change fixes the problem by throwing the PAL_SEHException from the context of the hardware exception itself rather than from the signal handler. Since it uses the same code as we were using for StartUnwindingNativeFrames in CoreCLR before, I have moved that stuff to PAL and let both CoreCLR and the signal handlers use it too. At the same time, I have reenabled the paltest_pal_sxs_test1 for FreeBSD and NetBSD, since it now works.
2016-02-17Save/restore floating point arguments in transition block on arm and arm64Jan Kotas1-6/+6
The transition block prolog/epilog macros were not correctly saving and restoring the floating point arguments on arm and arm64 on Unix.
2016-01-27Update license headersdotnet-bot1-5/+3
2015-07-27[aarch64] Initial aarch64/linux bring upGeoff Norton1-0/+844