[Bug target/28126] gcc moves an expensive instruction outside of a conditional

daney at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Jun 21 16:36:00 GMT 2006



------- Comment #1 from daney at gcc dot gnu dot org  2006-06-21 16:33 -------
Confirmed on: mipsel-linux-gcc (GCC) 4.2.0 20060605 (experimental)
cross compiler configured as:
../gcc/configure   --target=mipsel-linux
--with-sysroot=/usr/local/mipsel-linux-test
--prefix=/usr/local/mipsel-linux-test --with-arch=mips32 --with-float=soft
--disable-libmudflap --enable-tls --enable-languages=c

I get a slightly different output for the test case but the rdhwr is still
being hoisted out of the conditional:

        .file   1 "tls.c"
        .section .mdebug.abi32
        .previous
        .abicalls
        .text
        .align  2
        .globl  foo
        .ent    foo
        .type   foo, @function
foo:
        .frame  $sp,0,$31               # vars= 0, regs= 0/0, args= 0, gp= 0
        .mask   0x00000000,0
        .fmask  0x00000000,0
        .set    noreorder
        .cpload $25
        .set    nomacro

        lw      $2,%gottprel(x)($28)
        .set    push
        .set    mips32r2
        rdhwr   $3,$29
        .set    pop
        beq     $4,$0,$L7
        addu    $2,$2,$3

        j       $31
        lw      $2,0($2)

$L7:
        j       $31
        move    $2,$0

        .set    macro
        .set    reorder
        .end    foo
        .ident  "GCC: (GNU) 4.2.0 20060605 (experimental)"


-- 

daney at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |daney at gcc dot gnu dot org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-06-21 16:33:02
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28126



More information about the Gcc-bugs mailing list