projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was erroneously...
[fw/sdcc]
/
device
/
lib
/
_mulint.c
diff --git
a/device/lib/_mulint.c
b/device/lib/_mulint.c
index 8c2c5121d9a8fb8a0afabd6e7026a00976bc0432..387585c02b16b67075decfc889f76c969ac268f4 100644
(file)
--- a/
device/lib/_mulint.c
+++ b/
device/lib/_mulint.c
@@
-25,10
+25,6
@@
/* Signed and unsigned multiplication are the same - as long as the output
has the same precision as the input.
/* Signed and unsigned multiplication are the same - as long as the output
has the same precision as the input.
- To do: _muluint and _mulsint should be replaced by _mulint.
-
- bernhard@bernhardheld.de
-
Assembler-functions are provided for:
ds390
mcs51 small
Assembler-functions are provided for:
ds390
mcs51 small
@@
-56,10
+52,12
@@
# endif
#endif
# endif
#endif
-#if
def _MULINT_ASM_LARGE
+#if
defined(_MULINT_ASM_LARGE)
-unsigned int
-_muluint (unsigned int a, unsigned int b) // in future: _mulint
+#pragma save
+#pragma less_pedantic
+int
+_mulint (int a, int b)
{
a*b; // hush the compiler
{
a*b; // hush the compiler
@@
-77,7
+75,7
@@
_muluint (unsigned int a, unsigned int b) // in future: _mulint
#if defined(SDCC_PARMS_IN_BANK1)
mov a,b1_0
#else
#if defined(SDCC_PARMS_IN_BANK1)
mov a,b1_0
#else
- mov dptr,#__mul
u
int_PARM_2
+ mov dptr,#__mulint_PARM_2
movx a,@dptr ; lsb_b
#endif
mul ab ; lsb_a*lsb_b
movx a,@dptr ; lsb_b
#endif
mul ab ; lsb_a*lsb_b
@@
-109,27
+107,20
@@
_muluint (unsigned int a, unsigned int b) // in future: _mulint
ret
_endasm;
}
ret
_endasm;
}
+#pragma restore
-int
-_mulsint (int a, int b) // obsolete
-{
- return _muluint (a, b);
-}
-
-#elif defined _MULINT_ASM_SMALL || defined _MULINT_ASM_SMALL_AUTO
+#elif defined(_MULINT_ASM_SMALL) || defined(_MULINT_ASM_SMALL_AUTO)
-void
+#pragma save
+#pragma less_pedantic
+int
_mulint_dummy (void) _naked
{
_asm
__mulint:
_mulint_dummy (void) _naked
{
_asm
__mulint:
- __muluint: ; obsolete
- __mulsint: ; obsolete
.globl __mulint
.globl __mulint
- .globl __muluint ; obsolete
- .globl __mulsint ; obsolete
#if !defined(SDCC_STACK_AUTO) || defined(SDCC_PARMS_IN_BANK1)
#if !defined(SDCC_STACK_AUTO) || defined(SDCC_PARMS_IN_BANK1)
@@
-139,21
+130,17
@@
_mulint_dummy (void) _naked
.area OSEG (OVR,DATA)
#endif
#if defined(SDCC_PARMS_IN_BANK1)
.area OSEG (OVR,DATA)
#endif
#if defined(SDCC_PARMS_IN_BANK1)
- #define bl (b1_0)
- #define bh (b1_1)
+ #define bl (b1_0)
+ #define bh (b1_1)
#else
#else
- #define bl (__mulint_PARM_2)
- #define bh (__mulint_PARM_2 + 1)
+ #define bl (__mulint_PARM_2)
+ #define bh (__mulint_PARM_2 + 1)
__mulint_PARM_2:
__mulint_PARM_2:
- __muluint_PARM_2: ; obsolete
- __mulsint_PARM_2: ; obsolete
.globl __mulint_PARM_2
.globl __mulint_PARM_2
- .globl __muluint_PARM_2 ; obsolete
- .globl __mulsint_PARM_2 ; obsolete
.ds 2
.ds 2
-#endif
+#endif
.area CSEG (CODE)
.area CSEG (CODE)
@@
-213,6
+200,7
@@
_mulint_dummy (void) _naked
_endasm ;
}
_endasm ;
}
+#pragma restore
#else
#else
@@
-221,8
+209,8
@@
union uu {
unsigned int t;
} ;
unsigned int t;
} ;
-
unsigned
int
-_mul
uint (unsigned int a, unsigned int b) // in future: _mulint
+int
+_mul
int (int a, int b)
{
#if !defined(SDCC_STACK_AUTO) && (defined(SDCC_MODEL_LARGE) || defined(SDCC_ds390)) // still needed for large
union uu xdata *x;
{
#if !defined(SDCC_STACK_AUTO) && (defined(SDCC_MODEL_LARGE) || defined(SDCC_ds390)) // still needed for large
union uu xdata *x;
@@
-244,12
+232,6
@@
_muluint (unsigned int a, unsigned int b) // in future: _mulint
return t.t;
}
return t.t;
}
-int
-_mulsint (int a, int b) // obsolete
-{
- return _muluint (a, b);
-}
-
#endif
#undef _MULINT_ASM
#endif
#undef _MULINT_ASM