<pre class="notranslate">darwin
amd64
08d20469cc20 tip


When running ./all.bash inside a tmux session, one of the tests fails.

When running it from the "normal" console (in Terminal), it passes fine.</pre>
<pre class="notranslate">go version devel +8230013d1c40 Thu Oct 04 15:42:57 2012 -0400

package x

func idct(dst []byte, stride int, src *[64]int) {
    // Horizontal 1-D IDCT.
    for y := 0; y &lt; 8; y++ {
        // If all the AC components are zero, then the IDCT is trivial.
        if src[y*8+1] == 0 &amp;&amp; src[y*8+2] == 0 {
            dc := src[y*8+0] &lt;&lt; 3
            src[y*8+0] = dc
        }
    }
}

6g output:

0000 (x.go:3) TEXT    idct+0(SB),$0-40
0001 (x.go:3) MOVQ    src+32(FP),CX
0002 (x.go:5) MOVQ    $0,AX
0003 (x.go:5) JMP     ,5
0004 (x.go:5) INCQ    ,AX
0005 (x.go:5) CMPQ    AX,$8
0006 (x.go:5) JGE     $0,49
0007 (x.go:7) MOVQ    AX,BP
0008 (x.go:7) IMULQ   $8,BP
0009 (x.go:7) INCQ    ,BP
0010 (x.go:7) MOVQ    CX,R8
0011 (x.go:7) CMPQ    BP,$64
0012 (x.go:7) JCS     $1,15
0013 (x.go:7) CALL    ,runtime.panicindex+0(SB)
0014 (x.go:7) UNDEF   ,
0015 (x.go:7) MOVQ    (R8)(BP*8),BX
0016 (x.go:7) CMPQ    BX,$0
0017 (x.go:7) JNE     ,4
0018 (x.go:7) MOVQ    AX,BP
0019 (x.go:7) IMULQ   $8,BP
0020 (x.go:7) ADDQ    $2,BP
0021 (x.go:7) MOVQ    CX,R8
0022 (x.go:7) CMPQ    BP,$64
0023 (x.go:7) JCS     $1,26
0024 (x.go:7) CALL    ,runtime.panicindex+0(SB)
0025 (x.go:7) UNDEF   ,
0026 (x.go:7) MOVQ    (R8)(BP*8),BX
0027 (x.go:7) CMPQ    BX,$0
0028 (x.go:7) JNE     ,4
0029 (x.go:8) MOVQ    AX,BP
0030 (x.go:8) IMULQ   $8,BP
0031 (x.go:8) ADDQ    $0,BP
0032 (x.go:8) MOVQ    CX,R8
0033 (x.go:8) CMPQ    BP,$64
0034 (x.go:8) JCS     $1,37
0035 (x.go:8) CALL    ,runtime.panicindex+0(SB)
0036 (x.go:8) UNDEF   ,
0037 (x.go:8) MOVQ    (R8)(BP*8),SI
0038 (x.go:8) SHLQ    $3,SI
0039 (x.go:9) MOVQ    AX,BP
0040 (x.go:9) IMULQ   $8,BP
0041 (x.go:9) ADDQ    $0,BP
0042 (x.go:9) MOVQ    CX,BX
0043 (x.go:9) CMPQ    BP,$64
0044 (x.go:9) JCS     $1,47
0045 (x.go:9) CALL    ,runtime.panicindex+0(SB)
0046 (x.go:9) UNDEF   ,
0047 (x.go:9) MOVQ    SI,(BX)(BP*8)
0048 (x.go:7) JMP     ,4
0049 (x.go:12) RET     ,

AFter linking:

codeblk [0x2000,0x13800) at offset 0x1000
002000  main.idct            | (3)  TEXT    main.idct+0(SB),$171798691840
002000  65488b0c25a0080000   | (3)  MOVQ    2208(GS),CX
002009  483b21               | (3)  CMPQ    SP,(CX)
00200c  7705                 | (3)  JHI ,2013
00200e  e89d100100           | (3)  CALL    ,130b0+runtime.morestack40
002013  488b4c2428           | (3)  MOVQ    main.src+40(SP),CX
002018  4831c0               | (5)  MOVQ    $0,AX
00201b  4883f808             | (5)  CMPQ    AX,$8
00201f  7d78                 | (5)  JGE $0,2099
002021  4889c5               | (7)  MOVQ    AX,BP
002024  486bed08             | (7)  IMULQ   $8,BP
002028  48ffc5               | (7)  INCQ    ,BP
00202b  4989c8               | (7)  MOVQ    CX,R8
00202e  4883fd40             | (7)  CMPQ    BP,$64
002032  737b                 | (7)  JCC $1,20af
002034  498b1ce8             | (7)  MOVQ    (R8)(BP*8),BX
002038  4883fb00             | (7)  CMPQ    BX,$0
00203c  7552                 | (7)  JNE ,2090
00203e  4889c5               | (7)  MOVQ    AX,BP
002041  486bed08             | (7)  IMULQ   $8,BP
002045  4883c502             | (7)  ADDQ    $2,BP
002049  4989c8               | (7)  MOVQ    CX,R8
00204c  4883fd40             | (7)  CMPQ    BP,$64
002050  7356                 | (7)  JCC $1,20a8
002052  498b1ce8             | (7)  MOVQ    (R8)(BP*8),BX
002056  4883fb00             | (7)  CMPQ    BX,$0
00205a  7534                 | (7)  JNE ,2090
00205c  4889c5               | (8)  MOVQ    AX,BP
00205f  486bed08             | (8)  IMULQ   $8,BP
002063  4883c500             | (8)  ADDQ    $0,BP
002067  4989c8               | (8)  MOVQ    CX,R8
00206a  4883fd40             | (8)  CMPQ    BP,$64
00206e  7331                 | (8)  JCC $1,20a1
002070  498b34e8             | (8)  MOVQ    (R8)(BP*8),SI
002074  48c1e603             | (8)  SHLQ    $3,SI
002078  4889c5               | (9)  MOVQ    AX,BP
00207b  486bed08             | (9)  IMULQ   $8,BP
00207f  4883c500             | (9)  ADDQ    $0,BP
002083  4889cb               | (9)  MOVQ    CX,BX
002086  4883fd40             | (9)  CMPQ    BP,$64
00208a  730e                 | (9)  JCC $1,209a
00208c  488934eb             | (9)  MOVQ    SI,(BX)(BP*8)
002090  48ffc0               | (5)  INCQ    ,AX
002093  4883f808             | (5)  CMPQ    AX,$8
002097  7c88                 | (5)  JLT $0,2021
002099  c3                   | (12) RET ,
00209a  e8017d0000           | (9)  CALL    ,9da0+runtime.panicindex
00209f  0f0b                 | (9)  UNDEF   ,
0020a1  e8fa7c0000           | (8)  CALL    ,9da0+runtime.panicindex
0020a6  0f0b                 | (8)  UNDEF   ,
0020a8  e8f37c0000           | (7)  CALL    ,9da0+runtime.panicindex
0020ad  0f0b                 | (7)  UNDEF   ,
0020af  e8ec7c0000           | (7)  CALL    ,9da0+runtime.panicindex
0020b4  0f0b                 | (7)  UNDEF   ,
_                    000020b6| 00 00 00 00 00 00 00 00 00 00


The IMULQs are all by $8 and could be shifts. Also there are some instances of ADDQ $0,
BP, which are pointless.</pre>