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.
Build this program with
GOAMD64=v3:Disassembling with the native
objdump -d, we getWith
go tool objdumpwe get@martisch
Side note, the popcount instruction disassembles as
POPCNT, it should really disassemble asPOPCNTQorPOPCNTL, as appropriate.