On Sat, 2008-03-22 at 23:14 +0000, David Woodhouse wrote: > On Sat, 2008-03-22 at 23:02 +0000, David Woodhouse wrote: > > > > Yeah, there's weird shit going on with the sensor/control > > registration. > > I think GCC is be miscompiling it -- the sequence of > > all = all && pm121_register_control(foo...); > > all = all && pm121_register_control(bar...); > > is bailing out as soon as 'all' gets set to zero. Despite the fact > > that pm121_register_control() quite blatantly has side-effects.
And it's just supposed to do that no ? Ben. > That's after I fix the names in pm121_new_control() and fix > pm121_register_control() to set controls[id] instead of always setting > controls[FAN_OD], btw. Without that I don't think it could ever have > worked. > > But it's still broken. I'll try to cut it down and file a GCC bug... > > .pm121_new_control: > .LFB929: > .loc 1 883 0 > .LVL44: > mflr 0 > .LCFI38: > std 0,16(1) > .LCFI39: > std 30,-16(1) > .LCFI40: > std 31,-8(1) > .LCFI41: > stdu 1,-128(1) > .LCFI42: > ld 30,[EMAIL PROTECTED](2) > mr 31,3 > .loc 1 886 0 > ld 9,.LC47-.LCTOC1(30) > lwz 0,48(9) > cmpwi 7,0,0 > bne 7,.L31 > .LVL45: > .loc 1 889 0 > ld 4,.LC49-.LCTOC1(30) > li 5,2 > bl .pm121_register_control > cmpdi 7,3,0 > beq 7,.L31 > .loc 1 890 0 > mr 3,31 > ld 4,.LC51-.LCTOC1(30) > li 5,1 > bl .pm121_register_control > cmpdi 7,3,0 > beq 7,.L31 > .loc 1 891 0 > mr 3,31 > ld 4,.LC53-.LCTOC1(30) > li 5,0 > bl .pm121_register_control > cmpdi 7,3,0 > beq 7,.L31 > .loc 1 892 0 > mr 3,31 > ld 4,.LC55-.LCTOC1(30) > li 5,3 > bl .pm121_register_control > cmpdi 7,3,0 > beq 7,.L31 > .loc 1 895 0 > ld 3,.LC57-.LCTOC1(30) > bl .printk > nop > .loc 1 896 0 > ld 9,.LC47-.LCTOC1(30) > li 0,1 > stw 0,48(9) > .LVL46: > .L31: > .loc 1 898 0 > addi 1,1,128 > ld 0,16(1) > mtlr 0 > ld 30,-16(1) > ld 31,-8(1) > .LVL47: > blr > > > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev