Hi Keith, thank you for your response. Sorry I didn't say that I saw this issue on linux/arm64. For your example above, the result on linux/arm64 is like this:
0x001c 00028 (spill.go:4) MOVD "".p(FP), R0
0x0020 00032 (spill.go:4) MOVH (R0), R1
0x0024 00036 (spill.go:4) MOVH R1, "".x-8(SP)
0x0028 00040 (spill.go:5) MOVD "".q+8(FP), R2
0x002c 00044 (spill.go:5) MOVH (R2), R3
0x0030 00048 (spill.go:5) MOVH R3, "".y-16(SP)
0x0034 00052 (spill.go:6) PCDATA $1, ZR
0x0034 00052 (spill.go:6) CALL "".g(SB)
0x0038 00056 (spill.go:7) MOVH "".y-16(SP), R0
0x003c 00060 (spill.go:7) MOVD "".p(FP), R1
0x0040 00064 (spill.go:7) MOVH R0, (R1)
0x0044 00068 (spill.go:8) MOVH "".x-8(SP), R0
0x0048 00072 (spill.go:8) MOVD "".q+8(FP), R1
0x004c 00076 (spill.go:8) MOVH R0, (R1)
Obviously it is 8 bytes.