Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Interlocked for small types. #92974

Merged
merged 67 commits into from
Jan 25, 2024
Merged
Changes from 1 commit
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
4344057
Implement Interlocked for small types.
MichalPetryka Oct 3, 2023
d282722
Fix xarch assert
MichalPetryka Oct 3, 2023
4079320
Update PalRedhawkInline.h
MichalPetryka Oct 3, 2023
dae9d66
Update PalRedhawkInline.h
MichalPetryka Oct 4, 2023
4b74dba
Update threads.c
MichalPetryka Oct 4, 2023
c6935de
Simplify NAOT handling
MichalPetryka Oct 4, 2023
095567c
Fix build
MichalPetryka Oct 4, 2023
35a812f
Update atomic.h
MichalPetryka Oct 4, 2023
f55fb45
Update atomic.h
MichalPetryka Oct 4, 2023
b1c6dde
Update atomic.h
MichalPetryka Oct 4, 2023
8e80946
Fix windows intrinsics
MichalPetryka Oct 5, 2023
a25a4a3
Update comutilnative.cpp
MichalPetryka Oct 5, 2023
da399ca
Fix Windows builds
MichalPetryka Oct 5, 2023
79c07ff
Update icall-def.h
MichalPetryka Oct 6, 2023
7da080b
Fix icall-def.h
akoeplinger Oct 6, 2023
37fdee1
Improve tests
MichalPetryka Oct 6, 2023
358c11b
Update InterlockedTests.cs
MichalPetryka Oct 6, 2023
b0f85fa
Remove small type normalization
MichalPetryka Oct 6, 2023
f406c21
Try to fix the intrinsics
MichalPetryka Oct 6, 2023
59dbd5e
Fix ARM64 build
MichalPetryka Oct 6, 2023
42f1c80
Try to fix XArch 66 prefix and ARM64
MichalPetryka Oct 7, 2023
70174d7
Fix typo
MichalPetryka Oct 7, 2023
f108f6d
Fix assert
MichalPetryka Oct 7, 2023
6d09d88
Code cleanup
MichalPetryka Oct 8, 2023
d3fbf3e
Update importercalls.cpp
MichalPetryka Oct 8, 2023
92b7497
Update importercalls.cpp
MichalPetryka Oct 8, 2023
0394523
Extend small types properly
MichalPetryka Oct 8, 2023
1ee1c3e
Add RISC-V asserts
MichalPetryka Oct 9, 2023
064b7b3
Merge remote-tracking branch 'origin/main' into small-interlocked
lambdageek Oct 10, 2023
25a5194
c11 atomics interlocked ops for small types
lambdageek Oct 10, 2023
22407e4
Simplify Windows atomics
MichalPetryka Oct 10, 2023
50893e2
Merge upstream
MichalPetryka Oct 11, 2023
0cc7d92
Restore NativeAOT fallbacks for other platforms
MichalPetryka Oct 11, 2023
868efdf
Merge upstream
MichalPetryka Oct 17, 2023
d8efc0d
Add more tests
MichalPetryka Oct 21, 2023
6c101a4
Format
MichalPetryka Oct 21, 2023
25e3ab4
Update Interlocked.cs
MichalPetryka Oct 21, 2023
3a3e60e
Merge upstream
MichalPetryka Oct 27, 2023
4ca06ff
Fix tests and comment
MichalPetryka Oct 27, 2023
1879669
Merge branch 'main' into small-interlocked
MichalPetryka Nov 3, 2023
5536554
Merge branch 'dotnet:main' into small-interlocked
MichalPetryka Dec 1, 2023
ed90e8b
Add emitOutputCV handling
MichalPetryka Dec 1, 2023
1c2a4cc
Merge
MichalPetryka Dec 10, 2023
fca6d47
Fix extension
MichalPetryka Dec 10, 2023
ca73b06
Use a slightly better fix
MichalPetryka Dec 10, 2023
d067d7f
More complete fix
MichalPetryka Dec 10, 2023
bbbadc0
Fix the fix
MichalPetryka Dec 10, 2023
1b8767b
Fix more places
MichalPetryka Dec 10, 2023
d357407
CR feedback
jkotas Jan 10, 2024
724f66c
Merge branch 'main' into small-interlocked
MichalPetryka Jan 10, 2024
499ea14
Merge remote-tracking branch 'upstream/main' into small-interlocked
MichalPetryka Jan 20, 2024
55f7cc1
Fix corelib
MichalPetryka Jan 20, 2024
00cdcb7
Fix tests
MichalPetryka Jan 20, 2024
382d8ea
Add using
MichalPetryka Jan 20, 2024
1099743
Match NativeAOT #ifs
MichalPetryka Jan 20, 2024
82f6fbe
Update Interlocked.cs
MichalPetryka Jan 20, 2024
1a7c4a2
Fix test projects
MichalPetryka Jan 21, 2024
7f97233
Fix tests, try linking with libatomic
MichalPetryka Jan 21, 2024
ce412f9
Improve build test
MichalPetryka Jan 21, 2024
ec2c380
Fix tests
MichalPetryka Jan 23, 2024
7b8869a
Merge branch 'main' into small-interlocked
MichalPetryka Jan 23, 2024
2acc845
Merge remote-tracking branch 'upstream/main' into small-interlocked
MichalPetryka Jan 24, 2024
ea35c1e
Fix tests again
MichalPetryka Jan 24, 2024
35f840d
Remove libatomic
MichalPetryka Jan 24, 2024
de8f617
Merge remote-tracking branch 'upstream/main' into small-interlocked
MichalPetryka Jan 24, 2024
7af81b3
Cleanup, fix helper extension
MichalPetryka Jan 24, 2024
72e5bf8
Fix test corelib
MichalPetryka Jan 24, 2024
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
Prev Previous commit
Next Next commit
Fix icall-def.h
akoeplinger committed Oct 6, 2023
commit 7da080bd06910a1445cb95245c8749cd28a32923
4 changes: 2 additions & 2 deletions src/mono/mono/metadata/icall-def.h
Original file line number Diff line number Diff line change
@@ -558,16 +558,16 @@ NOHANDLES(ICALL(ILOCK_2, "Add(long&,long)", ves_icall_System_Threading_Interlock
NOHANDLES(ICALL(ILOCK_24, "CompareExchange(byte&,byte,byte)", ves_icall_System_Threading_Interlocked_CompareExchange_Byte))
NOHANDLES(ICALL(ILOCK_5, "CompareExchange(int&,int,int)", ves_icall_System_Threading_Interlocked_CompareExchange_Int))
NOHANDLES(ICALL(ILOCK_6, "CompareExchange(int&,int,int,bool&)", ves_icall_System_Threading_Interlocked_CompareExchange_Int_Success))
NOHANDLES(ICALL(ILOCK_25, "CompareExchange(int16&,int16,int16)", ves_icall_System_Threading_Interlocked_CompareExchange_Short))
NOHANDLES(ICALL(ILOCK_8, "CompareExchange(long&,long,long)", ves_icall_System_Threading_Interlocked_CompareExchange_Long))
NOHANDLES(ICALL(ILOCK_9, "CompareExchange(object&,object&,object&,object&)", ves_icall_System_Threading_Interlocked_CompareExchange_Object))
NOHANDLES(ICALL(ILOCK_25, "CompareExchange(short&,short,short)", ves_icall_System_Threading_Interlocked_CompareExchange_Short))
NOHANDLES(ICALL(ILOCK_11, "Decrement(int&)", ves_icall_System_Threading_Interlocked_Decrement_Int))
NOHANDLES(ICALL(ILOCK_12, "Decrement(long&)", ves_icall_System_Threading_Interlocked_Decrement_Long))
NOHANDLES(ICALL(ILOCK_26, "Exchange(byte&,byte)", ves_icall_System_Threading_Interlocked_Exchange_Byte))
NOHANDLES(ICALL(ILOCK_15, "Exchange(int&,int)", ves_icall_System_Threading_Interlocked_Exchange_Int))
NOHANDLES(ICALL(ILOCK_27, "Exchange(int16&,int16)", ves_icall_System_Threading_Interlocked_Exchange_Short))
NOHANDLES(ICALL(ILOCK_17, "Exchange(long&,long)", ves_icall_System_Threading_Interlocked_Exchange_Long))
NOHANDLES(ICALL(ILOCK_18, "Exchange(object&,object&,object&)", ves_icall_System_Threading_Interlocked_Exchange_Object))
NOHANDLES(ICALL(ILOCK_27, "Exchange(short&,short)", ves_icall_System_Threading_Interlocked_Exchange_Short))
NOHANDLES(ICALL(ILOCK_20, "Increment(int&)", ves_icall_System_Threading_Interlocked_Increment_Int))
NOHANDLES(ICALL(ILOCK_21, "Increment(long&)", ves_icall_System_Threading_Interlocked_Increment_Long))
NOHANDLES(ICALL(ILOCK_22, "MemoryBarrierProcessWide", ves_icall_System_Threading_Interlocked_MemoryBarrierProcessWide))