You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the go disassembler (as seen in go tool objdump or go tool pprof -disasm, SSE floating point instructions are encoded with a seemingly incorrect "REPNE" prefix.
So REPNE is F2 and MULSD with an XMM operand is F2 0F 59, but the go disassembler decodes F2 0F 59 as REPNE MULSD_XMM, in opposition to gobjdump just saying mulsd.
Originally I was confused, and thought that maybe this was something like REPZ RET, but the more I looked, the more this seemed like a bug in x86 decoding.
What version of Go are you using (go version)?
go version go1.7 darwin/amd64
What operating system and processor architecture are you using (go env)?
The text was updated successfully, but these errors were encountered:
quentinmit
changed the title
Confusing disassembler output around sse floating point instructions
cmd/objdump: confusing disassembler output around sse floating point instructions
Oct 11, 2016
rsc
changed the title
cmd/objdump: confusing disassembler output around sse floating point instructions
cmd/objdump: MULSD disassembles as REPNE MULSD
Oct 20, 2016
When the go disassembler (as seen in
go tool objdump
orgo tool pprof -disasm
, SSE floating point instructions are encoded with a seemingly incorrect "REPNE" prefix.So
REPNE
isF2
andMULSD
with anXMM
operand isF2 0F 59
, but the go disassembler decodesF2 0F 59
asREPNE MULSD_XMM
, in opposition to gobjdump just sayingmulsd
.Originally I was confused, and thought that maybe this was something like
REPZ RET
, but the more I looked, the more this seemed like a bug in x86 decoding.What version of Go are you using (
go version
)?What operating system and processor architecture are you using (
go env
)?What did you do?
Compile this code:
Compare the output of GNU binutils
objdump
vsgo tool objdump
.What did you expect to see?
Output like GNU objdump:
What did you see instead?
The text was updated successfully, but these errors were encountered: