Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Fix some struct passing and tail call Jit problems on System V type of O... #427

Merged
merged 1 commit into from Mar 12, 2015

Conversation

LLITCHEV
Copy link

...Ss.

This change set contains the following:

  1. Removes the PUSH/POP for RDI/RSI functionality from the Jit for Linux. Replaced with
    standard register tracking and spilling by the RA.
  2. Initialize the non stack homed, register passed param stack offset to 0
    and allow the fixup routines to operate on the offset. Tail calls
    implementation depends on the offset of the first param be set properly.
  3. Initial work to allow for frame chaining using a FP register.

@LLITCHEV
Copy link
Author

@BruceForstall @CarolEidt @schellap
Could you please take a look?

@LLITCHEV
Copy link
Author

No asm diffs and DDRs passed.

@@ -701,7 +713,7 @@ typedef unsigned short regPairNoSmall; // arm: need 12 bits
// Use this value to specify how many MustInit vars on Linux would trigger a FramePointer to be used.
// If there is no FramePointer blockInit in codegencommon.cpp is not used. There is a limit to the size of the
// prolog (it should not exceed one IG.) Make sure we don't get in such case.
#define MAX_VARS_FOR_NO_FRAMEPOINTER 6
#define MAX_VARS_SIZE_FOR_NO_FRAMEPOINTER 6
Copy link
Member

Choose a reason for hiding this comment

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

This should be deleted.

@CarolEidt
Copy link

LGTM

@@ -4852,11 +4844,27 @@ void CodeGen::genCheckUseBlockInit()

Copy link
Member

Choose a reason for hiding this comment

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

You should add a comment about the UNIX_AMD64_ABI case here.

@LLITCHEV
Copy link
Author

PR updated. Addressed comments.
No ASM changes with latest PR and DDR tests passed.

@jkotas
Copy link
Member

jkotas commented Mar 12, 2015

LGTM. Could you please squash the commits before it is merged?

…f OSs.

This change set contains the following:
1. Removes the PUSH/POP for RDI/RSI functionality from the Jit for Linux. Replaced with
standard register tracking and spilling by the RA.
2. Initialize the non stack homed, register passed param stack offset to 0
and allow the fixup routines to operate on the offset. Tail calls
implementation depends on the offset of the first param be set properly.
3. Initial work to allow for frame chaining using a FP register.
LLITCHEV added a commit that referenced this pull request Mar 12, 2015
Fix some struct passing and tail call Jit problems on System V type of O...
@LLITCHEV LLITCHEV merged commit 8f2d4d4 into dotnet:master Mar 12, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
5 participants