http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54371
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[4.8 Regression] a lot of |[4.8 Regression] jump |testcase failures on |tables are broken on n64 |mips64-linux-gnu |mips64-linux-gnu |(soft-float) n64 only | --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-08-25 05:00:18 UTC --- It is obvious what is wrong from the assembly differences of testsuite/gcc.c-torture/execute/ashldi-1.c : --- old.s 2012-08-25 04:57:12.000000000 +0000 +++ new.s 2012-08-25 04:57:24.000000000 +0000 @@ -131,17 +131,17 @@ constant_shift: nop lwu $2,8($fp) - dsll $3,$2,3 + dsll $3,$2,2 ld $2,%got_page(.L69)($28) daddiu $2,$2,%got_ofst(.L69) daddu $2,$3,$2 - ld $2,0($2) + lw $2,0($2) daddu $2,$2,$28 j $2 nop .rdata - .align 3 + .align 2 .align 2 .L69: .gpdword .L72 ---- CUT ---- We went from loading a 64bit word (correct) to loading only a 32bit word incorrect. This is for a jump table.