mirror of
https://github.com/cc65/cc65.git
synced 2024-12-23 04:30:10 +00:00
Make the 8x32 unsigned multiplication routine C callable.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5079 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
3806cd472d
commit
655ffe5dcd
@ -6,7 +6,7 @@
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* (C) 2009, Ullrich von Bassewitz */
|
||||
/* (C) 2009-2011, Ullrich von Bassewitz */
|
||||
/* Roemerstrasse 52 */
|
||||
/* D-70794 Filderstadt */
|
||||
/* EMail: uz@cc65.org */
|
||||
@ -67,6 +67,11 @@ long __fastcall__ cc65_imul16x16r32 (int lhs, int rhs);
|
||||
unsigned __fastcall__ cc65_umul8x8r16 (unsigned char lhs, unsigned char rhs);
|
||||
/* Multiplicate two unsigned 8 bit to yield an unsigned 16 bit result */
|
||||
|
||||
unsigned long __fastcall__ cc65_umul16x8r32 (unsigned lhs, unsigned char rhs);
|
||||
/* Multiplicate an unsigned 16 bit by an unsigned 8 bit number yielding a 24
|
||||
* bit unsigned result that is extended to 32 bits for easier handling from C.
|
||||
*/
|
||||
|
||||
unsigned long __fastcall__ cc65_umul16x16r32 (unsigned lhs, unsigned rhs);
|
||||
/* Multiplicate two unsigned 16 bit to yield an unsigned 32 bit result */
|
||||
|
||||
|
@ -105,6 +105,7 @@ S_OBJS = _cwd.o \
|
||||
cc65_sincos.o \
|
||||
cc65_udiv32by16r16.o \
|
||||
cc65_umul16x16r32.o \
|
||||
cc65_umul16x8r32.o \
|
||||
chdir.o \
|
||||
copydata.o \
|
||||
creat.o \
|
||||
|
27
libsrc/common/cc65_umul16x8r32.s
Normal file
27
libsrc/common/cc65_umul16x8r32.s
Normal file
@ -0,0 +1,27 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 2011-07-10
|
||||
;
|
||||
; CC65 library: 16x8 => 32 unsigned multiplication
|
||||
;
|
||||
|
||||
.export _cc65_umul16x8r32
|
||||
.import umul8x16r24, popax
|
||||
|
||||
.include "zeropage.inc"
|
||||
|
||||
|
||||
;---------------------------------------------------------------------------
|
||||
; 16x8 => 32 unsigned multiplication routine. We use 8x16 => 24 and clear
|
||||
; the high byte of the result
|
||||
|
||||
.proc _cc65_umul16x8r32
|
||||
|
||||
sta ptr1
|
||||
lda #0
|
||||
sta sreg+1 ; Clear high byte of result
|
||||
jsr popax
|
||||
jmp umul8x16r24
|
||||
|
||||
.endproc
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user