compiler options?

On Tuesday 14 January 2003 10:58, phil.hanc...@tekelek.com.au wrote:
> Greetings,
> This is using the release 1 of the  compiler.
> We are having problems with a bogus code insertion when calling some
> functions particularly when calling the integer multiply or division
> library functions.
> It apppears to have inserted a bogus function instead of a call to the
> multiply function. In all cases, the compiler is disabling interrupts (this
> is really bad for this project) while it refreshes R15 with  0x013a, and
> then re-enables ints. Why does it disable interrupts, and what is it trying
> to do the 0x13a? The calculation is incorrect as a result of this
> dint/push/pop r15 operation as there is no multiplication. The <__mulhi3>
> library function is missing from the list file.
> Here are two examples from the list file of reused code in two projects,
> the first is compiled with release 1 (2002-12-17) , the second was compiled
> with (2002-09-22). Release 1 appears to completely miss out on doing the
> multiply, and inserts the bogus dint/push/R15 manipulation/pop. Anywhere we
> have done an integer muliplication and division in release 1, the resultant
> assembly code structure is the same.
> I would appreciate some clues/comments/help??
>
> Example (a)
>       x = (SWORD)(input - pBuf[index].c);
>     c60a:   4f 4b                   mov.b r11,  r15   ;
>     c60c:   0e 4f                   mov   r15,  r14   ;
>     c60e:   0e 5e                   rla   r14         ;
>     c610:   0e 5f                   add   r15,  r14   ;
>     c612:   0e 5e                   rla   r14         ;
>     c614:   0e 59                   add   r9,   r14   ;
>     c616:   1a 8e 04 00       sub   4(r14),     r10   ;
>       x *= (SWORD)(-pBuf[index].inv_m);
>     c61a:   5f 4e 02 00             mov.b 2(r14),     r15   ;
>     c61e:   3f e3                   inv   r15         ;
>     c620:   1f 53                   inc   r15         ;
>     c622:   02 12                   push  r2          ;
>     c624:   32 c2                   dint
>     c626:   03 43                   nop
>     c628:   82 4a 32 01       mov   r10,  &0x0132     ;
>     c62c:   82 4f 38 01             mov   r15,  &0x0138     ;
>     c630:   1f 42 3a 01             mov   &0x013a,r15 ;src addr 0x013a
>     c634:   32 41                   pop   SR          ;
>       x /= (SWORD)(pBuf[index].scale);
>     c636:   5e 4e 03 00       mov.b 3(r14),     r14   ;
>     c63a:   0c 4f                   mov   r15,  r12   ;
>     c63c:   0a 4e                   mov   r14,  r10   ;
>     c63e:   b0 12 1e c9       call  #-14050     ;#0xc91e
>     c642:   0f 4c                   mov   r12,  r15   ;
>
> 0000c91e <__divmodhi4>:
>
> Example (b)
>       x = (SWORD)input - pBuf[index].c;
>     ed28:   4d 4a                   mov.b r10,  r13   ;
>     ed2a:   4e 4b                   mov.b r11,  r14   ;
>     ed2c:   0f 4e                   mov   r14,  r15   ;
>     ed2e:   0f 5f                   rla   r15         ;
>     ed30:   0f 5e                   add   r14,  r15   ;
>     ed32:   0f 5f                   rla   r15         ;
>     ed34:   0f 59                   add   r9,   r15   ;
>     ed36:   1d 8f 04 00             sub   4(r15),     r13   ;
>       x *= (SWORD)pBuf[index].inv_m;
>     ed3a:   5e 4f 01 00             mov.b 1(r15),     r14   ;
>     ed3e:   8e 11                   sxt   r14         ;
>     ed40:   0a 4d                   mov   r13,  r10   ;
>     ed42:   0c 4e                   mov   r14,  r12   ;
>     ed44:   b0 12 8e f8             call  #-1906            ;#0xf88e
>       x /= (SWORD)pBuf[index].scale;
>     ed48:   5f 4f 02 00             mov.b 2(r15),     r15   ;
>     ed4c:   0c 4e                   mov   r14,  r12   ;
>     ed4e:   0a 4f                   mov   r15,  r10   ;
>     ed50:   b0 12 dc f8             call  #-1828            ;#0xf8dc
>     ed54:   0f 4c                   mov   r12,  r15   ;
>
> 0000f88e <__mulhi3>:
> 0000f8dc <__divmodhi4>:
>
>
> Phil Hancock
> Australia
>
>
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by: FREE  SSL Guide from Thawte
> are you planning your Web Server Security? Click here to get a FREE
> Thawte SSL guide and find the answers to all your  SSL security issues.
> http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
> _______________________________________________
> Mspgcc-users mailing list
> Mspgcc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users

-- 
/********************************************************************
     ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
      `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys 
      (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
    _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
   (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
 ********************************************************************/


Reply via email to