Skip to content

Instantly share code, notes, and snippets.

@lysu
Created July 23, 2018 02:17
Show Gist options
  • Save lysu/9a671e50a76da411691989611b15ca2d to your computer and use it in GitHub Desktop.
Save lysu/9a671e50a76da411691989611b15ca2d to your computer and use it in GitHub Desktop.
Compare struct or pointer to interface.
@lysu
Copy link
Author

lysu commented Jul 23, 2018

struct to interface.

"".main STEXT size=125 args=0x0 locals=0x28
	0x0000 00000 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	TEXT	"".main(SB), $40-0
	0x0000 00000 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	MOVQ	(TLS), CX
	0x0009 00009 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	CMPQ	SP, 16(CX)
	0x000d 00013 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	JLS	118
	0x000f 00015 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	SUBQ	$40, SP
	0x0013 00019 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	MOVQ	BP, 32(SP)
	0x0018 00024 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	LEAQ	32(SP), BP
	0x001d 00029 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	FUNCDATA	$0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
	0x001d 00029 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	FUNCDATA	$1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
	0x001d 00029 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	LEAQ	go.itab."".Row,"".IRow(SB), AX
	0x0024 00036 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	AX, (SP)
	0x0028 00040 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	LEAQ	"".row(SB), AX
	0x002f 00047 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	AX, 8(SP)
	0x0034 00052 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	PCDATA	$0, $0
	0x0034 00052 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	CALL	runtime.convT2I(SB)
	0x0039 00057 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	16(SP), AX
	0x003e 00062 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	24(SP), CX
	0x0043 00067 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	AX, "".iface(SB)
	0x004a 00074 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVL	runtime.writeBarrier(SB), AX
	0x0050 00080 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	TESTL	AX, AX
	0x0052 00082 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	JNE	101
	0x0054 00084 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	CX, "".iface+8(SB)
	0x005b 00091 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:35)	MOVQ	32(SP), BP
	0x0060 00096 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:35)	ADDQ	$40, SP
	0x0064 00100 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:35)	RET
	0x0065 00101 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	LEAQ	"".iface+8(SB), DI
	0x006c 00108 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	CX, AX
	0x006f 00111 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	CALL	runtime.gcWriteBarrier(SB)
	0x0074 00116 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	JMP	91
	0x0076 00118 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	NOP
	0x0076 00118 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	PCDATA	$0, $-1
	0x0076 00118 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	CALL	runtime.morestack_noctxt(SB)
	0x007b 00123 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	JMP	0

@lysu
Copy link
Author

lysu commented Jul 23, 2018

pointer to iface

"".main STEXT size=95 args=0x0 locals=0x8
	0x0000 00000 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	TEXT	"".main(SB), $8-0
	0x0000 00000 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	MOVQ	(TLS), CX
	0x0009 00009 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	CMPQ	SP, 16(CX)
	0x000d 00013 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	JLS	88
	0x000f 00015 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	SUBQ	$8, SP
	0x0013 00019 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	MOVQ	BP, (SP)
	0x0017 00023 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	LEAQ	(SP), BP
	0x001b 00027 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	FUNCDATA	$0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
	0x001b 00027 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	FUNCDATA	$1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
	0x001b 00027 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	"".rowpointer(SB), AX
	0x0022 00034 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	LEAQ	go.itab.*"".RowPointer,"".IRow(SB), CX
	0x0029 00041 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	CX, "".iface(SB)
	0x0030 00048 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVL	runtime.writeBarrier(SB), CX
	0x0036 00054 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	TESTL	CX, CX
	0x0038 00056 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	JNE	74
	0x003a 00058 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	MOVQ	AX, "".iface+8(SB)
	0x0041 00065 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:35)	MOVQ	(SP), BP
	0x0045 00069 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:35)	ADDQ	$8, SP
	0x0049 00073 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:35)	RET
	0x004a 00074 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	LEAQ	"".iface+8(SB), DI
	0x0051 00081 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	CALL	runtime.gcWriteBarrier(SB)
	0x0056 00086 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	JMP	65
	0x0058 00088 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:34)	NOP
	0x0058 00088 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	PCDATA	$0, $-1
	0x0058 00088 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	CALL	runtime.morestack_noctxt(SB)
	0x005d 00093 (/home/robi/Code/go/src/github.com/pingcap/tidb/distsql/test/main.go:33)	JMP	0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment