Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
997f937
Add Load/Store SwiftSelf routines and update CallStubGenerator for Sw…
kotlarmilos Jan 13, 2026
dbb976a
Add support for SwiftError
kotlarmilos Jan 14, 2026
ed96eec
Fix build
kotlarmilos Jan 14, 2026
7942050
Add support for Swift struct lowering
kotlarmilos Jan 15, 2026
61fc4b5
Add support for loading Swift indirect results
kotlarmilos Jan 15, 2026
356cd29
Merge branch 'main' into feature/clr-interp-swift-interop
kotlarmilos Jan 15, 2026
41a7259
FIx merge error
kotlarmilos Jan 15, 2026
1dd70f3
Implement Swift interop support for lowered return values
kotlarmilos Jan 16, 2026
dccc970
Disable UnmanagedCallersOnly tests
kotlarmilos Jan 16, 2026
1c0cbc6
Remove obsolete code and mirror unix and windows stubs on arm64
kotlarmilos Jan 16, 2026
44f93a9
Fix windows build
kotlarmilos Jan 16, 2026
20ec8e9
Revert windows-related changes
kotlarmilos Jan 16, 2026
675c6ef
Fix SwiftError handling
janvorli Jan 16, 2026
489d41a
Apply suggestion from @janvorli
janvorli Jan 20, 2026
d0bbdb4
Merge branch 'main' of github.com:kotlarmilos/runtime into feature/cl…
kotlarmilos Jan 26, 2026
a02c1e8
Update OFFSETOF__CallStubHeader__Routines to match the correct offset
kotlarmilos Jan 26, 2026
3f44d66
Merge branch 'main' into feature/clr-interp-swift-interop
kotlarmilos Jan 27, 2026
0b7152e
Add interpreter stub epilog transition for P/Invokes with SwiftError
kotlarmilos Jan 28, 2026
de7f6d2
Update src/coreclr/vm/callstubgenerator.cpp
kotlarmilos Jan 28, 2026
fcf14ee
Update src/coreclr/vm/callstubgenerator.cpp
kotlarmilos Jan 28, 2026
f6fe00b
Update src/coreclr/vm/callstubgenerator.cpp
kotlarmilos Jan 28, 2026
b6182a7
Update src/coreclr/vm/callstubgenerator.cpp
kotlarmilos Jan 28, 2026
8983583
Update src/coreclr/vm/callstubgenerator.h
kotlarmilos Jan 28, 2026
a4c92f0
Revert windows-related changes
kotlarmilos Jan 28, 2026
fa26cac
Refactor swiftLoweringInfo to use CQuickArray
kotlarmilos Jan 28, 2026
3b44e03
Encapsulate Swift-related code in functions
kotlarmilos Jan 28, 2026
6926d33
Simplify type checks
kotlarmilos Jan 28, 2026
35fb7ac
Add magic word
kotlarmilos Jan 30, 2026
c57c6a5
Add Swift error handling support in call stubs
kotlarmilos Jan 30, 2026
525b8d6
Remove unused Swift lowered interpreter stub and related references
kotlarmilos Jan 30, 2026
306e656
Improve code checks and remove unused stubs
kotlarmilos Jan 30, 2026
79527ec
Add Swift error handling to missing stubs
kotlarmilos Jan 30, 2026
04e4deb
Moved stub arrays to getters
kotlarmilos Jan 30, 2026
27e5700
Wrap code in TARGET_APPLE
kotlarmilos Jan 30, 2026
b28191c
Merge branch 'main' into feature/clr-interp-swift-interop
kotlarmilos Feb 4, 2026
debfe01
Update logging for Swift routines and guard stubs with TARGET_APPLE
kotlarmilos Feb 4, 2026
d0710f5
Fix arg index and interpreter stack offset for lowered structs
kotlarmilos Feb 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion src/coreclr/pal/inc/unixasmmacrosarm64.inc
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,21 @@ C_FUNC(\Name\()_End):

.endm

// Same as EPILOG_WITH_TRANSITION_BLOCK_RETURN but skips restoring x21 (SwiftError)
.macro EPILOG_WITH_TRANSITION_BLOCK_RETURN_SKIP_SWIFT_ERROR

EPILOG_STACK_FREE __PWTB_StackAlloc

EPILOG_RESTORE_REG_PAIR x19, x20, 16
EPILOG_RESTORE_REG x22, 40
EPILOG_RESTORE_REG_PAIR x23, x24, 48
EPILOG_RESTORE_REG_PAIR x25, x26, 64
EPILOG_RESTORE_REG_PAIR x27, x28, 80
EPILOG_RESTORE_REG_PAIR_INDEXED fp, lr, 176
ret

.endm

//-----------------------------------------------------------------------------
// Provides a matching epilog to PROLOG_WITH_TRANSITION_BLOCK and ends by preparing for tail-calling.
// Since this is a tail call argument registers are restored.
Expand Down Expand Up @@ -410,7 +425,7 @@ C_FUNC(\Name\()_End):
PROLOG_SAVE_REG_PAIR x27, x28, 80

mov \target, sp
.endm
.endm

.macro POP_COOP_PINVOKE_FRAME
EPILOG_RESTORE_REG_PAIR x19, x20, 16
Expand Down
2 changes: 1 addition & 1 deletion src/coreclr/vm/arm/asmconstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ ASMCONSTANTS_C_ASSERT(OFFSETOF__Thread__m_pInterpThreadContext == offsetof(Threa
#define OFFSETOF__InterpThreadContext__pStackPointer 0x8
ASMCONSTANTS_C_ASSERT(OFFSETOF__InterpThreadContext__pStackPointer == offsetof(InterpThreadContext, pStackPointer))

#define OFFSETOF__CallStubHeader__Routines 0x10
#define OFFSETOF__CallStubHeader__Routines 0x14
ASMCONSTANTS_C_ASSERT(OFFSETOF__CallStubHeader__Routines == offsetof(CallStubHeader, Routines))

#define SIZEOF__TransitionBlock 0x34
Expand Down
3 changes: 3 additions & 0 deletions src/coreclr/vm/arm64/asmconstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,9 @@ ASMCONSTANTS_C_ASSERT(OFFSETOF__Thread__m_pInterpThreadContext == offsetof(Threa
#define OFFSETOF__InterpThreadContext__pStackPointer 0x10
ASMCONSTANTS_C_ASSERT(OFFSETOF__InterpThreadContext__pStackPointer == offsetof(InterpThreadContext, pStackPointer))

#define OFFSETOF__CallStubHeader__HasSwiftError 0x0D
ASMCONSTANTS_C_ASSERT(OFFSETOF__CallStubHeader__HasSwiftError == offsetof(CallStubHeader, HasSwiftError))

#define OFFSETOF__CallStubHeader__Routines 0x18
ASMCONSTANTS_C_ASSERT(OFFSETOF__CallStubHeader__Routines == offsetof(CallStubHeader, Routines))

Expand Down
Loading
Loading