Skip to content

Don't save untouched registers to the stack #25

@SamuraiCrow

Description

@SamuraiCrow

In most 68000 compatible compilers, a MOVEM.L opcode is used to preserve all non-scratch registers to the stack for retrieval just before the execution returns to the calling function. In the case that not all registers are actually touched by the called function, performance is adversely affected by the unnecessary register preservation and retrieval.

Since AmigaE is a 2 pass compiler, it can keep notes on register usage on the first pass while generating the activation record so that the code generation in pass 2 can store and retrieve the registers actually dirtied and leave the rest alone. I think the PPC backend might already do this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is neededpausedin limbo due to circumstances

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions