LINUX.ORG.RU

История изменений

Исправление beastie, (текущая версия) :

Погрешности измерения. Разворачиваются они всё таки в одно и тоже:

"".SwapXOR t=1 size=48 value=0 args=0x10 locals=0x0
        0x0000 00000 (swap.go:3)        TEXT    "".SwapXOR+0(SB),4,$0-16
        0x0000 00000 (swap.go:3)        NOP     ,
        0x0000 00000 (swap.go:3)        NOP     ,
        0x0000 00000 (swap.go:3)        MOVQ    "".b+16(FP),CX
        0x0005 00005 (swap.go:3)        MOVQ    "".a+8(FP),AX
        0x000a 00010 (swap.go:3)        FUNCDATA        $0,gclocals·e8c55b930b09fa5028b5e4b78b8932dc+0(SB)
        0x000a 00010 (swap.go:3)        FUNCDATA        $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
        0x000a 00010 (swap.go:4)        NOP     ,
        0x000a 00010 (swap.go:4)        MOVQ    (AX),DX
        0x000d 00013 (swap.go:4)        NOP     ,
        0x000d 00013 (swap.go:4)        NOP     ,
        0x000d 00013 (swap.go:4)        MOVQ    (CX),BP
        0x0010 00016 (swap.go:4)        XORQ    DX,BP
        0x0013 00019 (swap.go:4)        MOVQ    BP,(AX)
        0x0016 00022 (swap.go:4)        NOP     ,
        0x0016 00022 (swap.go:5)        NOP     ,
        0x0016 00022 (swap.go:5)        MOVQ    (CX),DX
        0x0019 00025 (swap.go:5)        NOP     ,
        0x0019 00025 (swap.go:5)        NOP     ,
        0x0019 00025 (swap.go:5)        MOVQ    (AX),BP
        0x001c 00028 (swap.go:5)        XORQ    DX,BP
        0x001f 00031 (swap.go:5)        MOVQ    BP,(CX)
        0x0022 00034 (swap.go:5)        NOP     ,
        0x0022 00034 (swap.go:6)        NOP     ,
        0x0022 00034 (swap.go:6)        MOVQ    (AX),DX
        0x0025 00037 (swap.go:6)        NOP     ,
        0x0025 00037 (swap.go:6)        NOP     ,
        0x0025 00037 (swap.go:6)        MOVQ    (CX),BP
        0x0028 00040 (swap.go:6)        XORQ    DX,BP
        0x002b 00043 (swap.go:6)        MOVQ    BP,(AX)
        0x002e 00046 (swap.go:6)        NOP     ,
        0x002e 00046 (swap.go:7)        RET     ,

"".SwapTmp t=1 size=32 value=0 args=0x10 locals=0x0
        0x0000 00000 (swap.go:9)        TEXT    "".SwapTmp+0(SB),4,$0-16
        0x0000 00000 (swap.go:9)        NOP     ,
        0x0000 00000 (swap.go:9)        NOP     ,
        0x0000 00000 (swap.go:9)        MOVQ    "".a+8(FP),DX
        0x0005 00005 (swap.go:9)        MOVQ    "".b+16(FP),CX
        0x000a 00010 (swap.go:9)        FUNCDATA        $0,gclocals·e8c55b930b09fa5028b5e4b78b8932dc+0(SB)
        0x000a 00010 (swap.go:9)        FUNCDATA        $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
        0x000a 00010 (swap.go:10)       NOP     ,
        0x000a 00010 (swap.go:10)       MOVQ    (DX),AX
        0x000d 00013 (swap.go:11)       NOP     ,
        0x000d 00013 (swap.go:11)       NOP     ,
        0x000d 00013 (swap.go:11)       MOVQ    (CX),R8
        0x0010 00016 (swap.go:11)       MOVQ    R8,(DX)
        0x0013 00019 (swap.go:12)       NOP     ,
        0x0013 00019 (swap.go:12)       MOVQ    AX,(CX)
        0x0016 00022 (swap.go:13)       RET     ,

"".SwapNative t=1 size=32 value=0 args=0x10 locals=0x0
        0x0000 00000 (swap.go:15)       TEXT    "".SwapNative+0(SB),4,$0-16
        0x0000 00000 (swap.go:15)       NOP     ,
        0x0000 00000 (swap.go:15)       NOP     ,
        0x0000 00000 (swap.go:15)       MOVQ    "".a+8(FP),DX
        0x0005 00005 (swap.go:15)       MOVQ    "".b+16(FP),CX
        0x000a 00010 (swap.go:15)       FUNCDATA        $0,gclocals·e8c55b930b09fa5028b5e4b78b8932dc+0(SB)
        0x000a 00010 (swap.go:15)       FUNCDATA        $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
        0x000a 00010 (swap.go:16)       NOP     ,
        0x000a 00010 (swap.go:16)       MOVQ    (DX),AX
        0x000d 00013 (swap.go:16)       NOP     ,
        0x000d 00013 (swap.go:16)       NOP     ,
        0x000d 00013 (swap.go:16)       MOVQ    (CX),R8
        0x0010 00016 (swap.go:16)       MOVQ    R8,(DX)
        0x0013 00019 (swap.go:16)       NOP     ,
        0x0013 00019 (swap.go:16)       MOVQ    AX,(CX)
        0x0016 00022 (swap.go:17)       RET     ,

Исходная версия beastie, :

Погрешности измерения. Разворачиваются они всё таки в одно и тоже:

"".SwapXOR t=1 size=48 value=0 args=0x10 locals=0x0
        0x0000 00000 (swap.go:3)        TEXT    "".SwapXOR+0(SB),4,$0-16
        0x0000 00000 (swap.go:3)        NOP     ,
        0x0000 00000 (swap.go:3)        NOP     ,
        0x0000 00000 (swap.go:3)        MOVQ    "".b+16(FP),CX
        0x0005 00005 (swap.go:3)        MOVQ    "".a+8(FP),AX
        0x000a 00010 (swap.go:3)        FUNCDATA        $0,gclocals·e8c55b930b09fa5028b5e4b78b8932dc+0(SB)
        0x000a 00010 (swap.go:3)        FUNCDATA        $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
        0x000a 00010 (swap.go:4)        NOP     ,
        0x000a 00010 (swap.go:4)        MOVQ    (AX),DX
        0x000d 00013 (swap.go:4)        NOP     ,
        0x000d 00013 (swap.go:4)        NOP     ,
        0x000d 00013 (swap.go:4)        MOVQ    (CX),BP
        0x0010 00016 (swap.go:4)        XORQ    DX,BP
        0x0013 00019 (swap.go:4)        MOVQ    BP,(AX)
        0x0016 00022 (swap.go:4)        NOP     ,
        0x0016 00022 (swap.go:5)        NOP     ,
        0x0016 00022 (swap.go:5)        MOVQ    (CX),DX
        0x0019 00025 (swap.go:5)        NOP     ,
        0x0019 00025 (swap.go:5)        NOP     ,
        0x0019 00025 (swap.go:5)        MOVQ    (AX),BP
        0x001c 00028 (swap.go:5)        XORQ    DX,BP
        0x001f 00031 (swap.go:5)        MOVQ    BP,(CX)
        0x0022 00034 (swap.go:5)        NOP     ,
        0x0022 00034 (swap.go:6)        NOP     ,
        0x0022 00034 (swap.go:6)        MOVQ    (AX),DX
        0x0025 00037 (swap.go:6)        NOP     ,
        0x0025 00037 (swap.go:6)        NOP     ,
        0x0025 00037 (swap.go:6)        MOVQ    (CX),BP
        0x0028 00040 (swap.go:6)        XORQ    DX,BP
        0x002b 00043 (swap.go:6)        MOVQ    BP,(AX)
        0x002e 00046 (swap.go:6)        NOP     ,
        0x002e 00046 (swap.go:7)        RET     ,

"".SwapTmp t=1 size=32 value=0 args=0x10 locals=0x0
        0x0000 00000 (swap.go:9)        TEXT    "".SwapTmp+0(SB),4,$0-16
        0x0000 00000 (swap.go:9)        NOP     ,
        0x0000 00000 (swap.go:9)        NOP     ,
        0x0000 00000 (swap.go:9)        MOVQ    "".a+8(FP),DX
        0x0005 00005 (swap.go:9)        MOVQ    "".b+16(FP),CX
        0x000a 00010 (swap.go:9)        FUNCDATA        $0,gclocals·e8c55b930b09fa5028b5e4b78b8932dc+0(SB)
        0x000a 00010 (swap.go:9)        FUNCDATA        $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
        0x000a 00010 (swap.go:10)       NOP     ,
        0x000a 00010 (swap.go:10)       MOVQ    (DX),AX
        0x000d 00013 (swap.go:11)       NOP     ,
        0x000d 00013 (swap.go:11)       NOP     ,
        0x000d 00013 (swap.go:11)       MOVQ    (CX),R8
        0x0010 00016 (swap.go:11)       MOVQ    R8,(DX)
        0x0013 00019 (swap.go:12)       NOP     ,
        0x0013 00019 (swap.go:12)       MOVQ    AX,(CX)
        0x0016 00022 (swap.go:13)       RET     ,

"".SwapNative t=1 size=32 value=0 args=0x10 locals=0x0
        0x0000 00000 (swap.go:15)       TEXT    "".SwapNative+0(SB),4,$0-16
        0x0000 00000 (swap.go:15)       NOP     ,
        0x0000 00000 (swap.go:15)       NOP     ,
        0x0000 00000 (swap.go:15)       MOVQ    "".a+8(FP),DX
        0x0005 00005 (swap.go:15)       MOVQ    "".b+16(FP),CX
        0x000a 00010 (swap.go:15)       FUNCDATA        $0,gclocals·e8c55b930b09fa5028b5e4b78b8932dc+0(SB)
        0x000a 00010 (swap.go:15)       FUNCDATA        $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
        0x000a 00010 (swap.go:16)       NOP     ,
        0x000a 00010 (swap.go:16)       MOVQ    (DX),AX
        0x000d 00013 (swap.go:16)       NOP     ,
        0x000d 00013 (swap.go:16)       NOP     ,
        0x000d 00013 (swap.go:16)       MOVQ    (CX),R8
        0x0010 00016 (swap.go:16)       MOVQ    R8,(DX)
        0x0013 00019 (swap.go:16)       NOP     ,