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

[LoongArch64] coreclr-vm directory #62885

Merged
merged 49 commits into from
Apr 21, 2022
Merged

[LoongArch64] coreclr-vm directory #62885

merged 49 commits into from
Apr 21, 2022

Conversation

shushanhf
Copy link
Contributor

Part6-2: Add the coreclr-vm directory for LoongArch64.

@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Dec 16, 2021
@dnfadmin
Copy link

dnfadmin commented Dec 16, 2021

CLA assistant check
All CLA requirements met.

@jkotas jkotas changed the title Part6-2: Add the coreclr-vm directory for LoongArch64. [LoongArch64] coreclr-vm directory Dec 16, 2021
src/coreclr/vm/syncblk.cpp Outdated Show resolved Hide resolved
Copy link
Contributor

@kant2002 kant2002 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments.

src/coreclr/vm/ceeload.h Show resolved Hide resolved
src/coreclr/vm/class.cpp Outdated Show resolved Hide resolved
src/coreclr/vm/comdelegate.cpp Outdated Show resolved Hide resolved
src/coreclr/vm/interpreter.cpp Show resolved Hide resolved
src/coreclr/vm/interpreter.cpp Outdated Show resolved Hide resolved
void CopyStructToRegisters(void *src, int fieldBytes)
{
_ASSERTE(IsStructPassedInRegs());
_ASSERTE(m_argLocDescForStructInRegs->m_cFloatReg == 1);
Copy link
Member

@jkotas jkotas Dec 18, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is the case of struct passed in two floating registers handled?

Copy link
Contributor Author

@shushanhf shushanhf Dec 20, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is the case of struct passed in two floating registers handled?

A struct containing just one floating-point real is passed as though it were a standalone floating-point real.
It's related with the ABI, similar with the PR #62893 ,
#62893 (comment)

This case is also the same with the RISC-V: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-cc.adoc

Copy link
Contributor

@kant2002 kant2002 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments about compilation issues.

src/coreclr/vm/exceptionhandling.cpp Outdated Show resolved Hide resolved
src/coreclr/vm/jitinterface.cpp Outdated Show resolved Hide resolved
qiaopengcheng and others added 3 commits December 20, 2021 10:32
amend the `ToolBox/superpmi/superpmi-shared/agnostic.h`
after merged `MethodTable::GetLoongArch64PassStructInRegisterFlags()`
and `CEEInfo::getLoongArch64PassStructInRegisterFlags()`
@BruceForstall
Copy link
Member

@shushanhf Now that #65738 has merged, this needs to be updated.

@shushanhf
Copy link
Contributor Author

@shushanhf Now that #65738 has merged, this needs to be updated.

OK, Thanks

@BruceForstall
Copy link
Member

@jkotas @janvorli Time for another (final?) code review here?

when running hello-world within debug-mode after refacting.
@shushanhf
Copy link
Contributor Author

shushanhf commented Apr 8, 2022

Now I had tested the hello-world passed both the release and debug mode based on the latest main-LoongArch64.

@BruceForstall
Copy link
Member

@mangod9 @janvorli @jkotas Is there anything left here to review? (fyi, I just merged the LoongArch64 JIT PR)

@shushanhf shushanhf requested a review from janvorli April 13, 2022 02:46
@shushanhf
Copy link
Contributor Author

@mangod9 @janvorli @jkotas
Could you please give me some advices further?

@shushanhf
Copy link
Contributor Author

shushanhf commented Apr 20, 2022

Hi, @mangod9 @janvorli @jkotas

What should I do for this PR next?
Could you please give me some advices ?

@mangod9
Copy link
Member

mangod9 commented Apr 20, 2022

Hi @shushanhf, sorry for delayed response. We plan to review this again this week and will merge with a green CI. Thanks

Copy link
Member

@janvorli janvorli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@mangod9
Copy link
Member

mangod9 commented Apr 21, 2022

Looks to have passed on rerun. So will merge it now.

@mangod9 mangod9 merged commit febeba3 into dotnet:main Apr 21, 2022
@BruceForstall
Copy link
Member

@shushanhf Thanks for your patience and response to code review feedback. And congratulations on getting this merged!

BruceForstall pushed a commit that referenced this pull request Apr 25, 2022
* [LoongArch64] add coreclr-inc,gc, ToolBox directory. (#59561)

Co-authored-by: Loongson's .NET-teams

* [LoongArch64] move inc/switches.h to #62889.

* [LoongArch64] move some configure files from #62889.

* [LoongArch64] revert the modify when moved from #62889.

* [LoongArch64] moved the inc/stdmacros.h to #62885.

* [LoongArch64] moved inc/corinfo.h to #62885.

* [LoongArch64] modify the related files for compiling error.

* [LoongArch64] revert the `src/coreclr/gcinfo/CMakeLists.txt` to original.

* [LoongArch64] delete unused files on windows.

* [LoongArch64] add define IMAGE_FILE_MACHINE_LOONGARCH64.

* [LoongArch64] workround the compiling error for IMAGE_FILE_MACHINE_LOONGARCH64 on windows.

* [LoongArch64] workround the compiling error for SPMI_TARGET_ARCHITECTURE_LOONGARCH64 on windows.

* [LoongArch64] delete the memcpy for LoongArch64 and revert workround patches.

* [LoongArch64] exclude the gc, ToolBox and config files from this PR.

* [LoongArch64] amend code for compiling error on LoongArch64-machine.

* [LoongArch64] update the version of the `LICENSE description`.

* [LoongArch64] amend the code about debug.

* [LoongArch64] temp submit for fixing the windows compiling error.

* [LoongArch64] amend some LA's implements for CR.

Co-authored-by: qiaopengcheng <qiaopengcheng-hf@loongson.cn>
@shushanhf shushanhf deleted the main_loongarch64_2 branch May 11, 2022 01:12
@ghost ghost locked as resolved and limited conversation to collaborators Jun 10, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-loongarch64 area-VM-coreclr community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants