golang/go

cmd/objdump: new GOAMD64=v3 instructions don't disassemble properly

Open

#48,584 建立於 2021年9月23日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)Go (19,008 fork)batch import
NeedsFixcompiler/runtimehelp wanted

倉庫指標

Star
 (133,883 star)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

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.

貢獻者指南