Skip to content

Delayed state updates #4

@numas13

Description

@numas13

@numas13 from old repo

Currently in v5 branch, all checks for operations in a bundle occur in sequential order without any delayed state updates. This means that if any exception occurs, such a bundle will perform a partial state update and the correct recovery from the exception will no longer occur.

{
    addd,0 %r0, 1, %r0      ! update r0
    ldd,2 [ addr ], %r1     ! an exception may occur here
    addd,3 %r2, 1, %r2
}

In this example, the initial value of the %r0 register will be lost if ldd fails due to a page fault.

This behavior wasn't a big problem in user mode emulation, but in system mode it's no longer acceptable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions