Ticket #2569 (closed bug: fixed)

Opened 2 years ago

Last modified 2 years ago

[PATCH] vregs does not store EBX

Reported by: andreasf Owned by: axeld
Priority: normal Milestone: R1
Component: - General Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Has a Patch: no
Platform: x86 Blocking:

Description

The x86 vregs structure passed to sigaction signal handlers does not store EBP in the ebp field but in _reserved_2[2]. EBX is not stored at all.

Attachments

arch_thread.cpp-EBP+EBX.diff Download (1.0 KB) - added by andreasf 2 years ago.
Proposed patch

Change History

Changed 2 years ago by andreasf

Proposed patch

comment:1 Changed 2 years ago by andreasf

The attached patch changes arch_setup_signal_frame and arch_restore_signal_frame to store EBP in the ebp field and EBX in _reserved_2[2], EBP's previous field.

This was checked against real-world applications (make, sleep, vim, ftp) and helped with the ongoing port of Mono's JIT.

comment:2 Changed 2 years ago by axeld

  • Status changed from new to closed
  • Resolution set to fixed

Applied in r26818. Thanks!

Note: See TracTickets for help on using tickets.