1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 15:29:46 +00:00
cc65/libsrc/runtime
uz 3806cd472d Added new 8x16 unsigned multiplication routine.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5078 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-10 14:51:03 +00:00
..
add.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
addeqsp.s
addysp.s More module splits 2000-10-25 19:53:22 +00:00
along.s New module 2002-11-23 11:19:51 +00:00
and.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
aslax1.s
aslax2.s
aslax3.s
aslax4.s More shift routines 2001-07-25 21:36:01 +00:00
asleax1.s
asleax2.s
asleax3.s
asleax4.s More shift routines 2001-07-25 21:36:01 +00:00
asr.s New code for the shift functions 2004-07-05 22:24:06 +00:00
asrax1.s
asrax2.s
asrax3.s Runtime function improvements by Piotr Fusik 2003-10-28 08:47:47 +00:00
asrax4.s Runtime function improvements by Piotr Fusik 2003-10-28 08:47:47 +00:00
asreax1.s
asreax2.s Remove unneeded code 2001-07-25 21:37:52 +00:00
asreax3.s More shift routines 2001-07-25 21:36:01 +00:00
asreax4.s More shift routines 2001-07-25 21:36:01 +00:00
axlong.s Splitted the lconvert module into three smaller ones to allow for smaller 2000-10-25 07:06:55 +00:00
bneg.s
bpushbsp.s
call.s
callirq.s Call interrupt handlers with carry clear 2005-05-05 10:07:17 +00:00
callmain.s New module 2003-03-07 11:53:17 +00:00
compl.s
condes.s Move initialization code into the init segment 2005-02-26 09:06:46 +00:00
decax1.s Splitted the dec and inc modules into smaller ones 2000-10-31 18:42:47 +00:00
decax2.s Splitted the dec and inc modules into smaller ones 2000-10-31 18:42:47 +00:00
decax3.s Added mor specialized decax functions 2001-03-26 20:47:12 +00:00
decax4.s Added mor specialized decax functions 2001-03-26 20:47:12 +00:00
decax5.s Added mor specialized decax functions 2001-03-26 20:47:12 +00:00
decax6.s Added mor specialized decax functions 2001-03-26 20:47:12 +00:00
decax7.s Added mor specialized decax functions 2001-03-26 20:47:12 +00:00
decax8.s Added mor specialized decax functions 2001-03-26 20:47:12 +00:00
decaxy.s Splitted the dec and inc modules into smaller ones 2000-10-31 18:42:47 +00:00
decsp1.s More module splits 2000-10-25 19:53:22 +00:00
decsp2.s Rewrite the decsp and subysp functions now since they are used more often. 2001-03-24 16:15:01 +00:00
decsp3.s Rewrite the decsp and subysp functions now since they are used more often. 2001-03-24 16:15:01 +00:00
decsp4.s Rewrite the decsp and subysp functions now since they are used more often. 2001-03-24 16:15:01 +00:00
decsp5.s Rewrite the decsp and subysp functions now since they are used more often. 2001-03-24 16:15:01 +00:00
decsp6.s Rewrite the decsp and subysp functions now since they are used more often. 2001-03-24 16:15:01 +00:00
decsp7.s Rewrite the decsp and subysp functions now since they are used more often. 2001-03-24 16:15:01 +00:00
decsp8.s Recode decsp8 2001-03-26 14:41:45 +00:00
div.s Fixed the result of the % operator for ints 2002-09-28 19:41:00 +00:00
enter.s
eq.s
ge.s
gt.s
icmp.s Added tosicmp0, a special entry point that clears the X register. 2009-08-14 22:08:28 +00:00
idiv32by16r16.s Working on the division and multiplication routines. 2009-11-04 19:41:54 +00:00
imul16x16r32.s Working on the division and multiplication routines. 2009-11-04 19:41:54 +00:00
incax1.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
incax2.s Splitted the dec and inc modules into smaller ones 2000-10-31 18:42:47 +00:00
incax3.s Fixed errors in the incaxn functions 2001-02-21 08:39:25 +00:00
incax5.s Fixed errors in the incaxn functions 2001-02-21 08:39:25 +00:00
incax6.s Fixed errors in the incaxn functions 2001-02-21 08:39:25 +00:00
incax7.s Fixed errors in the incaxn functions 2001-02-21 08:39:25 +00:00
incax8.s Fixed errors in the incaxn functions 2001-02-21 08:39:25 +00:00
incaxy.s Splitted the dec and inc modules into smaller ones 2000-10-31 18:42:47 +00:00
incsp1.s More module splits 2000-10-25 19:53:22 +00:00
incsp2.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
incsp3.s Redid the last change, because it was bug (A must be saved across the call) 2003-05-13 10:00:39 +00:00
incsp4.s Redid the last change, because it was bug (A must be saved across the call) 2003-05-13 10:00:39 +00:00
incsp5.s Redid the last change, because it was bug (A must be saved across the call) 2003-05-13 10:00:39 +00:00
incsp6.s Redid the last change, because it was bug (A must be saved across the call) 2003-05-13 10:00:39 +00:00
incsp7.s Redid the last change, because it was bug (A must be saved across the call) 2003-05-13 10:00:39 +00:00
incsp8.s Redid the last change, because it was bug (A must be saved across the call) 2003-05-13 10:00:39 +00:00
jmpvec.s Moved jmpvec into a separate module 2002-12-26 15:45:48 +00:00
ladd.s Added additional entry points that clear the high word of the right operand. 2009-08-15 20:58:35 +00:00
laddeq.s
laddeqsp.s
land.s More entry points for long ops that clear the high word of the lhs. 2009-08-15 21:06:06 +00:00
lasr.s New code for the shift functions 2004-07-05 22:24:06 +00:00
lbneg.s Removed unneeded imports 2000-10-31 18:53:19 +00:00
lcmp.s dos -> unix lf conversion 2002-04-21 14:19:14 +00:00
lcompl.s
ldai.s Remove/cleanup 2001-07-26 20:08:10 +00:00
ldau0sp.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
ldaui.s Remove/cleanup 2001-07-26 20:08:10 +00:00
ldauisp.s
ldaxi.s
ldaxsp.s Removed old code to set the flags 2001-09-21 20:35:40 +00:00
ldeaxi.s
ldeaxysp.s Split of the lruntime module 2000-11-01 22:03:22 +00:00
ldec.s Several SBC optimizations suggested by Piotr Fusik 2001-11-17 11:25:12 +00:00
ldiv.s Added additional entry points that clear the high word of the right operand. 2009-08-15 20:58:35 +00:00
le.s
leaaxsp.s Oh well. Decided to throw away the separate implementation for leaa0sp, 2009-08-31 12:22:13 +00:00
leave.s
leq.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lge.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lgt.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
linc.s Added some 65C02 code. 2000-11-27 22:59:03 +00:00
lle.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
llt.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lmod.s Added additional entry points that clear the high word of the right operand. 2009-08-15 20:58:35 +00:00
lmul.s Added additional entry points that clear the high word of the right operand. 2009-08-15 20:58:35 +00:00
lne.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lneg.s
lor.s More entry points for long ops that clear the high word of the lhs. 2009-08-15 21:06:06 +00:00
lpop.s
lpush.s decspX will no longer save a 2001-03-24 15:57:32 +00:00
lrsub.s Added an entry point that clears the high word of rhs. 2009-08-16 16:38:52 +00:00
lsave.s
lshelp.s Fixed the result of the % operator for longs 2002-09-28 19:55:19 +00:00
lshl.s New code for the shift functions 2004-07-05 22:24:06 +00:00
lshr.s New code for the shift functions 2004-07-05 22:24:06 +00:00
lsub.s Added additional entry points that clear the high word of the right operand. 2009-08-15 20:58:35 +00:00
lsubeq.s Several SBC optimizations suggested by Piotr Fusik 2001-11-17 11:25:12 +00:00
lsubeqsp.s Several SBC optimizations suggested by Piotr Fusik 2001-11-17 11:25:12 +00:00
lt.s
ltest.s File was removed but is still needed. 2005-11-27 22:03:19 +00:00
ludiv.s More entry points for long ops that clear the high word of the lhs. 2009-08-15 21:06:06 +00:00
luge.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lugt.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lule.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lult.s Changed name for long compare subroutine 2001-10-01 22:21:16 +00:00
lumod.s Added additional entry points that clear the high word of the right operand. 2009-08-15 20:58:35 +00:00
lxor.s More entry points for long ops that clear the high word of the lhs. 2009-08-15 21:06:06 +00:00
makebool.s
Makefile Added new 8x16 unsigned multiplication routine. 2011-07-10 14:51:03 +00:00
mod.s Minor optimization suggested by Greg King 2002-10-24 19:23:24 +00:00
mul8.s Greatly improved multiplication routine. Optimized the generic 16x16 one and 2009-08-17 20:48:28 +00:00
mul.s Greatly improved multiplication routine. Optimized the generic 16x16 one and 2009-08-17 20:48:28 +00:00
mulax3.s Added special multiplication routines 2001-10-04 21:34:14 +00:00
mulax5.s Added special multiplication routines 2001-10-04 21:34:14 +00:00
mulax6.s Runtime function improvements by Piotr Fusik 2003-10-28 08:47:47 +00:00
mulax7.s Runtime function improvements by Piotr Fusik 2003-10-28 08:47:47 +00:00
mulax9.s Runtime function improvements by Piotr Fusik 2003-10-28 08:47:47 +00:00
mulax10.s Runtime function improvements by Piotr Fusik 2003-10-28 08:47:47 +00:00
ne.s
neg.s
or.s
popa.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
popsreg.s A few minor 65C02 optimizations. 2009-02-22 15:39:19 +00:00
push1.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
push2.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
push3.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
push4.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
push5.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
push6.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
push7.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
pusha.s Remove 65C02 code, because in this case, the value of Y on return is always 2009-10-20 08:25:58 +00:00
pushaff.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
pushax.s Added some cycle counts 2003-04-12 20:50:58 +00:00
pushb.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
pushbsp.s
pushc0.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
pushc1.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
pushc2.s Splitted the push.s module 2000-10-26 20:43:54 +00:00
pushlysp.s Split of the lruntime module 2000-11-01 22:03:22 +00:00
pushw.s Rewrite 2002-11-23 16:21:46 +00:00
pushwsp.s Fixed a bug in pushw0sp 2002-11-23 16:21:35 +00:00
regswap1.s New functions to swap register variables 2002-11-25 12:38:38 +00:00
regswap2.s New functions to swap register variables 2002-11-25 12:38:38 +00:00
regswap.s New functions to swap register variables 2002-11-25 12:38:38 +00:00
return0.s More module splits 2000-10-25 19:53:22 +00:00
return1.s More module splits 2000-10-25 19:53:22 +00:00
rsub.s
shelp.s Fixed the result of the % operator for ints 2002-09-28 19:41:00 +00:00
shl.s New code for the shift functions 2004-07-05 22:24:06 +00:00
shr.s New code for the shift functions 2004-07-05 22:24:06 +00:00
shrax1.s
shrax2.s
shrax3.s
shrax4.s More shift routines 2001-07-25 21:36:01 +00:00
shreax1.s
shreax2.s
shreax3.s
shreax4.s More shift routines 2001-07-25 21:36:01 +00:00
staspidx.s Rewrite of spaspidx and staxspidx. More module splits. 2000-10-26 06:35:45 +00:00
staxsp.s
staxspi.s Renamed a file with more than 8 chars in its name 2001-04-04 20:27:33 +00:00
steaxsp.s
steaxspi.s Split of the lruntime module 2000-11-01 22:03:22 +00:00
stkchk.s A few minor 65C02 optimizations. 2009-02-22 15:39:19 +00:00
sub.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
subeqsp.s Several SBC optimizations suggested by Piotr Fusik 2001-11-17 11:25:12 +00:00
subysp.s Runtime function improvements by Piotr Fusik 2003-10-28 08:47:47 +00:00
swap.s
tosint.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
toslong.s Improved 65c02 support 2003-10-10 17:52:12 +00:00
udiv32by16r16.s Working on the division and multiplication routines. 2009-11-04 19:41:54 +00:00
udiv.s Fixed an error in the division routine: The high byte of the wrong 16 bit 2011-01-11 17:08:29 +00:00
uge.s
ugt.s
ule.s
ult.s
umod.s
umul8x8r16.s Rename the 8x8 multiplication using the same scheme as for the 16x16 2009-11-12 15:48:11 +00:00
umul8x16r24.s Added new 8x16 unsigned multiplication routine. 2011-07-10 14:51:03 +00:00
umul16x16r32.s Added labels for umul16x16r16 and umul16x16r16m. 2011-07-10 14:50:18 +00:00
xor.s
zeropage.s Use new assembler syntax 2003-11-09 23:00:22 +00:00