1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-11 02:13:38 +09:00
Experimenting with dotnet runtime.
Find a file
Tomasz Sowiński bc9cd27455
[RISC-V][LoongArch64] JIT: pass structs according to floating-point calling convention properly (#104237)
* Replace StructFloatFieldInfoFlags with FpStructInRegistersInfo which carries also exact field sizes and offsets

* Replace StructFloatFieldInfoFlags with FpStruct::Flags in profiler

* Remove FpStructInRegistersInfo::FromOldFlags()

* Fix duplicating types in HandleInlineArray

* Remove signedness from FpStruct::IntKind because most probably we won't need it

* Remove old StructFloatFieldInfoFlags calculating routine

* Typo in TARGET_LOONGARCH64

* Remove m_returnedFpFieldOffsets from ArgIterator

* Add missing ENREGISTERED_PARAMTYPE_MAXSIZE condition to C# version of FpStruct info calculation

* Rename RISCV64PassStructInRegister to match settled casing for RiscV in class names

* Update hardcoded flags for float and double in ArgIteratorTemplate::ComputeReturnFlags()

This fixes JIT/HardwareIntrinsics/General/Vector* tests.

* Fix build on other platforms

* Update LoongArch to use FpStructInRegistersInfo

* Remove unused old flag masks

* LoongArch64 typo

Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn>

* Missing FpStruct namespace

Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn>

* Missing FpStruct namespace

Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn>

* Missing FpStruct namespace

Co-authored-by: Qiao Pengcheng <qiaopengcheng@loongson.cn>

* Use FpStruct namespace everywhere in JIT

* Add tests

* Fix passing FP structs in JIT

* Remove CallArgABIInformation.StructFloatFieldType and Offset because they were write-only. Replace with offset from new ABI info

* Remove CallArgABIInformation.StructDesc on System V because it was write-only

* Remove unused local vars from ABIPassingInformation::Classify

* Pass variables after the tested struct to detect potential register/stack slot over-allocation

* Add test for two-field but one-slot struct. Fix assertion bug that it uncovered

* Add sanity check for empty struct passing, disable on RISC-V and System V

* Format

* JIT review

* Update StructFloatFieldInfoFlags description

* Revert to hitherto instruction set order as it's not the point of this PR

* Disable Test_Empty_Sanity on arm32 due to bug in Clang

* Add ActiveIssue on arm and arm64

* Exclude arm64 from Test_PackedEmptyFloatLong*_RiscV

* Unify get{LoongArch,RiscV}64PassFpStructInRegistersInfo JIT interfaces

* Use JIT_TO_EE_TRANSITION instead of _LEAF because MethodTable::GetFpStructInRegistersInfo may throw

* Remove FpStruct::IntKind, we should have similar info in ClassLayout in JIT

* Change JIT interface to return a struct similar to CORINFO_SWIFT_LOWERING to facilitate code unification in the future

* Change JIT to use new Swift-like getFpStructLowering

* Cache CORINFO_FPSTRUCT_LOWERING

* Update LoongArch classifier to use CORINFO_FPSTRUCT_LOWERING

* Update StructFloatInfoFlags doc comment on C#

* Add arm32 clang issue

* Move StructFloatFieldInfoFlags and FpStructInRegistersInfo out of the JIT interface

* Merge LoongArch and RISC-V AOT calculation of FpStructInRegistersInfo because they were identical. Move it to Common\Internal/Runtime because it's no longer exposed in JIT interface.

* Don't zero-initialize CORINFO_FPSTRUCT_LOWERING

* Update LoongArch classifier

* Fix assert for two-field structs smaller than 8 bytes, add test
2024-08-01 11:20:13 +02:00
.config Remove .gdnbaselines file (#104594) 2024-07-09 13:51:51 +00:00
.devcontainer Fix codespaces build by bumping clang llvm (#105385) 2024-07-24 11:20:32 +02:00
.github Exclude dependabot from community-contribution labeling (#101742) 2024-07-30 15:02:07 -07:00
docs Do not separate header comments from function definitions (#105754) 2024-07-31 10:52:37 -07:00
eng Partial revert of #105301 to fix build break (#105785) 2024-08-01 10:50:49 +02:00
src [RISC-V][LoongArch64] JIT: pass structs according to floating-point calling convention properly (#104237) 2024-08-01 11:20:13 +02:00
.clang-format Move clang-format download into dotnet/runtime and add docs for setting up auto-formatting in the repository (#59374) 2021-09-23 14:34:00 -07:00
.clang-tidy Move JIT's clang-tidy flags into configuration files and add a root clang-tidy config that disables all checks. (#93951) 2023-10-25 15:16:22 -07:00
.CodeQL.yml Move CodeQL config file to root (#99575) 2024-03-11 21:31:02 -07:00
.dockerignore [HTTP/SSL] Fix stress (#93135) 2023-10-09 11:54:41 +02:00
.editorconfig Set csharp_indent_case_contents_when_block to false (#103091) 2024-06-13 14:14:47 -07:00
.gitattributes Update .gitattributes (#100736) 2024-05-22 09:50:38 -07:00
.gitignore Add the autocreated .mono/ folder to .gitignore (#102054) 2024-05-14 20:49:43 -06:00
.markdownlint.json Enable markdownlint rule (MD009) (#40887) 2021-02-08 10:43:40 -08:00
.vsconfig Bump Windows SDK version in .vsconfig (#103217) 2024-06-10 07:09:34 -07:00
build.cmd Print help for -? and /? cross-plat (#42396) 2020-09-24 14:27:24 +02:00
Build.proj Update unified build controls (#98330) 2024-02-15 18:48:18 +01:00
build.sh Add windows support for build.sh (#94) 2019-11-18 16:41:36 +01:00
CODE-OF-CONDUCT.md Initial runtime repository structure 2019-11-14 01:26:19 +01:00
CONTRIBUTING.md Fix maui link (#97509) 2024-01-25 09:51:34 -06:00
Directory.Build.props Replace most corelib uses of Unsafe.SizeOf<T> with sizeof(T) (#104923) 2024-07-17 06:44:53 -04:00
Directory.Build.rsp Disable msbuild terminal logger (#97309) 2024-01-22 13:08:28 -05:00
Directory.Build.targets Remove unnecessary ref source projects from Microsoft.Bcl packages (#105312) 2024-07-23 18:15:33 +02:00
Directory.Solution.props Fix solution restore in libraries (#38294) 2020-06-23 22:35:40 +02:00
dotnet.cmd Move dotnet.cmd/sh helper scripts into the repo root (#672) 2019-12-11 21:01:58 +01:00
dotnet.sh Move dotnet.cmd/sh helper scripts into the repo root (#672) 2019-12-11 21:01:58 +01:00
github-merge-flow.jsonc Onboard new inter-branch merge flow [Configuration] (#103805) 2024-07-03 11:29:56 -07:00
global.json Update dependencies from https://github.com/dotnet/arcade build 20240729.1 (#105691) 2024-07-30 15:30:32 -05:00
LICENSE.TXT Revert "Update "LICENSE.txt" so that it's recognized as MIT" (#37626) 2020-06-08 22:22:27 -04:00
NuGet.config Remove dotnet8 feeds from NuGet.config (#95860) 2023-12-15 23:25:08 +01:00
PATENTS.TXT Update repo link to dotnet/runtime (#1781) 2020-01-15 21:16:56 -05:00
README.md Link to general support page from repo readme (#104188) 2024-06-29 15:57:56 -07:00
SECURITY.md Fix trailing whitespaces (#40891) 2020-08-19 17:29:01 -07:00
THIRD-PARTY-NOTICES.TXT Migrate to zlib-ng, part 3: Remove zlib and zlib-intel source code and license mentions (second attempt) (#105371) 2024-07-24 21:58:02 -07:00

.NET Runtime

Build Status Help Wanted Good First Issue Gitter Discord

This repo contains the code to build the .NET runtime, libraries and shared host (dotnet) installers for all supported platforms, as well as the sources to .NET runtime and libraries.

What is .NET?

Official Starting Page: https://dotnet.microsoft.com

How can I contribute?

We welcome contributions! Many people all over the world have helped make this project better.

Reporting security issues and security bugs

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter. You can also find these instructions in this repo's Security doc.

Also see info about related Microsoft .NET Bounty Program.

Filing issues

This repo should contain issues that are tied to the runtime, the class libraries and frameworks, the installation of the dotnet binary (sometimes known as the muxer) and the installation of the .NET runtime and libraries.

For other issues, please file them to their appropriate sibling repos. We have links to many of them on our new issue page.

.NET Foundation

.NET Runtime is a .NET Foundation project.

There are many .NET related projects on GitHub.

  • .NET home repo - links to 100s of .NET projects, from Microsoft and the community.
  • ASP.NET Core home - the best place to start learning about ASP.NET Core.

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.

General .NET OSS discussions: .NET Foundation Discussions

License

.NET (including the runtime repo) is licensed under the MIT license.