Closed xiangzhai closed 4 years ago
\cc @QiaoVanke
BTW COMPlus_JITMinOpts=1
doesn't work without the workaround.
When bringing up the JIT, the first thing is to get everything running with MinOpts, so your "workaround" makes sense. (Setting COMPlus_JITMinOpts=1
should work; I'm not sure why it doesn't for you.)
I'm not familiar with the type of frames that are required by the MIPS ABI. Are there both frame pointer and frame pointer optional frames? I probably would not copy the ARM64 frame types; they are very complicated, and likely do what you want for MIPS. The arm32 ones are probably closer to what you need, depending on the ABI.
btw, I created an arch-mips64
label that we can use to tag MIPS64 architecture issues or PRs, as necessary.
Hi @BruceForstall
Thanks for your teaching!
Setting COMPlus_JITMinOpts=1 should work; I'm not sure why it doesn't for you.
I will double check it for MIPS64.
I probably would not copy the ARM64 frame types; they are very complicated ...
In the very beginning I just followed the ARM64 frameType
skeleton:
if (isFramePointerUsed())
{
if (((compiler->lvaOutgoingArgSpaceSize == 0) && (totalFrameSize <= xxx)) &&
!genSaveFpRaWithAllCalleeSavedRegisters)
{
}
else if (totalFrameSize <= xxx)
{
if (genSaveFpRaWithAllCalleeSavedRegisters)
{
}
else
{
}
}
else
{
if (genSaveFpRaWithAllCalleeSavedRegisters)
{
}
else
{
}
}
}
if (frameType == 1)
{
}
else if (frameType == 2)
{
}
else if (frameType == 3)
{
}
else if (frameType == 4)
{
}
else if (frameType == 5)
{
}
and likely do what you want for MIPS.
Thank @QiaoVanke fixed my complicated porting. He made it suitable for MIPS64.
btw, I created an arch-mips64 label that we can use to tag MIPS64 architecture issues or PRs, as necessary.
Thank you so much!
Thanks, Leslie Zhai
Setting COMPlus_JITMinOpts=1 should work; I'm not sure why it doesn't for you.
I will double check it for MIPS64.
Worked :)
Hi,
Testcase: JIT/Methodical/divrem/div/u4div_cs_do/u4div_cs_do.exe
Build option:
Assertion failed:
MIPS64 ported the CodeGen::genPushCalleeSavedRegisters:
Workaround:
The workaround is just able to force
codeGen->setFrameRequired(true);
Request for comments.
\cc @BruceForstall
Thanks, Leslie Zhai