Issue Details (XML | Word | Printable)

Key: RVM-79
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Ian Rogers
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
RVM

Dump all registers on a fault on Intel

Created: 21/Jun/07 08:29 AM   Updated: 10/Sep/08 03:02 PM
Component/s: Instruction Architecture: Intel
Affects Version/s: None
Fix Version/s: 3.1

Time Tracking:
Not Specified

Issue Links:
Related


 Description  « Hide
Currently an unhandled fault on Intel will dump out the 8 GPRs and 8 x87 registers. If using SSE2 we should dump out the XMM registers too.

 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Ian Rogers added a comment - 26/Jul/07 08:39 AM
We should also sanitize the x87 register names. Currently they are called FP0 to FP7, Intel call the x87 registers ST0 (stack top) to ST7 and the SSE registers XMM0 to XMM7. We also have two special register names ST0 and ST1 used to address the x87 stack when we can't perform operations in SSE. The reason the FP name exists is that the original x87 register allocation was to treat the x87 stack as a flat register file and perform trickery with stack exchange operations (fxch) to make it appear so.

Ian Rogers added a comment - 03/Apr/08 04:34 AM
Since the introduction of type registers the names of registers in opt compiler debug output is now sane. We aren't, however, dumping the XMM registers when we die because of a hardware trap. This is little more than tweaking the debug output so we should implement it for 2.9.3.

David Grove added a comment - 14/Jul/08 04:03 PM
I took a look, and this is annoyingly non-trivial.

The problem is that the header files (sys/ucontext.h vs asm/ucontext.h) are out of synch. We're using sys/ucontext.h and it doesn't have a way of naming the xmm registers.

Deferring this to later release. The actual coding is trivial if we had a portable way to name the right piece of the fpstate struct.