Skip to content

Register scanning approach is not reliable #183

@rptb1

Description

@rptb1

This is a simple manual import of Perforce job004158 so that it can be discussed with collaborators such as @waywardmonkeys .

Description

Filip Strömbäck @fstromback reports [1] that setjmp is not a reliable method of spilling registers onto the stack.

Analysis

The analysis we gave in design.mps.sol.setjmp.justify is not correct. A compiler can arrange for longjmp to reconstruct the registers using (for example) debug information, and so avoid the need to spill all the registers to the jump buffer.

How-found

customer

Introduced-in

Perforce changelist 194595 / Git commit 76166b7 / version 1.117.

Evidence

[1] https://info.ravenbrook.com/mail/2019/05/20/13-08-23/0/ (also below)

Test

none

History:

  • 2019-06-04 GDR Created.

Created-by

@gareth-rees

Creation-date

2019/06/04 11:43:26

Modified-date

2019/06/04 11:43:26

Metadata

Metadata

Assignees

No one assigned

    Labels

    essentialWill cause failure to meet customer requirements. Assign resources.needs analaysisThe issue needs analysis before it can be resolved.os.frRelates to FreeBSDos.liRelates to Linux

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions