Skip to content

Preserve return registers for unhandled Penguin hypercalls#5

Merged
lacraig2 merged 3 commits into
mainfrom
preserve-mips-hypercall-return
Jun 2, 2026
Merged

Preserve return registers for unhandled Penguin hypercalls#5
lacraig2 merged 3 commits into
mainfrom
preserve-mips-hypercall-return

Conversation

@lacraig2

@lacraig2 lacraig2 commented May 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Preserve guest return registers when a Penguin TCG marker is not handled by the registered callback.
  • Match old PANDA semantics: unhandled marker callbacks do not modify guest-visible return registers.
  • Keep MIPS preserving nr/$v0; preserve a0/return register for PPC, ARM/AArch64, RISC-V, and LoongArch.

Validation

  • git diff --check
  • Earlier isolated MIPS validation with patched libqemu-system-mipseb.so in the Penguin PR image:
    • mipseb basic target, Linux 4.10: 5/5 passes
    • mipsel basic target, Linux 4.10: 1/1 pass

@lacraig2 lacraig2 changed the title Preserve MIPS return register for unhandled Penguin hypercalls Preserve return registers for unhandled Penguin hypercalls May 27, 2026
@lacraig2 lacraig2 merged commit a9227fe into main Jun 2, 2026
1 check passed
@lacraig2 lacraig2 deleted the preserve-mips-hypercall-return branch June 2, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant