incorrect handling of [r32] address (long mode)
Bug #1095857 reported by
Stefan Fanslow
This bug affects 1 person
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| QEMU |
Expired
|
Undecided
|
Unassigned | ||
Bug Description
while executing in Long Mode (x86-64) instructions such as
mov eax,[r15d]
end up executing as
mov eax,[r15]
according to x86 programmer manuals the behavior of using the Address-Size override (in long mode) is supposed to ignore the high 32bits of the register. I use this fact in my operating system to reduce register usage (the high 32 bits of r15 holds other data). consequently a general protection exception occurs since the memory address isn't "canonical". this error doesn't always appear since the high 32 bits might not be zero in those conditions.
| Changed in qemu: | |
| status: | New → Incomplete |
To post a comment you must log in.

You are correct about what the instruction is supposed to do. That said the behaviour you describe is not reproducible. Which version of QEMU are you using? Could you please send a testcase?