It's from (modified) jidctred.c. I counted more than 20 occurences of __lmul__ there and just a few muls translations. (I am talking about the lines containing MULTIPLY macro.)
If needed I can send the whole file. ----- Original Message ----- From: "Keith Rollin" <[EMAIL PROTECTED]> To: "Palm Developer Forum" <[EMAIL PROTECTED]> Sent: Friday, January 10, 2003 11:48 PM Subject: Re: CW compiler > Just a data point here. > > I tried compiling the sources you posted. However, you didn't > provide the value of CONST_BITS you were using. It looks like your > snippets are from jidctint.c, so I used the value from that file > (13). In both of your examples, I got the direct muls version, not > the __lmul__ version. > > However, neither did I get the constant #-1730 to show up in my > disassembly, so perhaps my value of CONST_BITS is incorrect. The > difference might also be because of the simpler (extracted) code I > was using, compared to your using the entire function. > > -- Keith Rollin > -- Palm OS Emulator engineer > > At 11:04 PM +0100 1/10/03, Jan Slodicka wrote: > >It is from JPEG official library. > > > ><SNIP> > > > >----- Original Message ----- > >From: "Ben Combee" <[EMAIL PROTECTED]> > >To: "Palm Developer Forum" <[EMAIL PROTECTED]> > >Sent: Friday, January 10, 2003 10:49 PM > >Subject: Re: CW compiler > > > > > >> At 22:19 2003-1-10 +0100, you wrote: > >> >I just observed very strange thing. > >> > > >> >By changing the source line order the same source line (multiplication) > >is > >> >translated either into > >> > > >> > movea.w d4,a0 > >> > move.l a0,86(a7) > >> > move.l a0,d0 > >> > move.l #-1730,d1 > >> > jsr __lmul__ > >> > move.l d0,d3 > >> > > >> >or into > >> > > >> > move.w d6,d3 > >> > muls.w #-1730,d3 > >> > > >> >The second alternative seems to be optically shorter, but it actually > >uses > >> >register value inherited from the previous code. That's OK. > >> >What I don't understand is that in one case the multiplication is > >realized > >> >via muls instruction, in the other a call to the emulator is used > >instead. > >> > >> Could you show the lines of code? The first one is doing a signed 32-bit > >> multiplication, while the second is doing a signed 16-bit > >> multiplication. Is it possible that with one line order, you've got a > >long > >> temporary result that's affecting the multiplication? > >> > >> -- > >> Ben Combee <[EMAIL PROTECTED]> > >> CodeWarrior for Palm OS technical lead > >> Palm OS programming help @ www.palmoswerks.com > >> > >> > >> -- > >> For information on using the Palm Developer Forums, or to unsubscribe, > >please see http://www.palmos.com/dev/support/forums/ > > > > > >-- > >For information on using the Palm Developer Forums, or to > >unsubscribe, please see http://www.palmos.com/dev/support/forums/ > > > -- > For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/ -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
