On Sat, 2014-05-03 at 07:52 +0100, Richard Sandiford wrote: > > Old: > > > > li $5,305397760 # 0x12340000 > > addiu $4,$5,1 > > addiu $5,$5,-1 > > > > New: > > > > li $5,305332224 # 0x12330000 > > ori $5,$5,0xffff > > addiu $4,$5,2 > > This isn't as good though -- $4 now depends on two previous > instructions. Do you know which specific change was responsible? > > Thanks, > Richard
A quick follow up. The code in question is: void f () { g (0x12340001, 0x1233ffff); } And if I swap the arguments I get something more like the old code. But if I run an older GCC on that new swapped code then I get something like the new code. So while the old code may have been better for this example, the new code is better if I swap the arguments around. Steve Ellcey sell...@mips.com