golang/go
View on GitHubcmd/objdump: new GOAMD64=v3 instructions don't disassemble properly
Open
#48,584 opened on Sep 23, 2021
NeedsFixcompiler/runtimehelp wanted
Repository metrics
- Stars
- (133,883 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
Build this program with GOAMD64=v3:
package main
//go:noinline
func f(x, y uint64) uint64 {
return x &^ y
}
func main() {
f(0, 0)
}
Disassembling with the native objdump -d, we get
1053b20: c4 e2 e0 f2 c0 andnq %rax, %rbx, %rax
With go tool objdump we get
:0 0x1053b20 c4e2e0f2c0c3cc ROLL $0xcc, BL
@martisch
Side note, the popcount instruction disassembles as POPCNT, it should really disassemble as POPCNTQ or POPCNTL, as appropriate.