Opened 11 years ago

Closed 11 years ago

#2569 closed bug (fixed)

[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: Blocking:
Has a Patch: no Platform: x86


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 (1)

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

Download all attachments as: .zip

Change History (3)

by andreasf, 11 years ago

Proposed patch

comment:1 by andreasf, 11 years ago

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 by axeld, 11 years ago

Resolution: fixed
Status: newclosed

Applied in hrev26818. Thanks!

Note: See TracTickets for help on using tickets.