1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-26 08:32:00 +00:00
Commit Graph

131 Commits

Author SHA1 Message Date
uz
4a32e84639 Fixed an error in the division routine: The high byte of the wrong 16 bit
value was checked before entering the faster 16b8 division routine.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4904 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-11 17:08:29 +00:00
uz
c72cf88723 Comment update.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4582 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-02-04 22:29:57 +00:00
uz
c6831e936a Added --forget-inc-paths to the assembler command line to avoid problems if
more than one version of ca65 is installed on the machine (Spiro Trikaliotis).


git-svn-id: svn://svn.cc65.org/cc65/trunk@4530 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-18 11:58:50 +00:00
uz
5dc80c2615 Rename the 8x8 multiplication using the same scheme as for the 16x16
multiplication.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4463 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-12 15:48:11 +00:00
uz
18272c0427 Working on the division and multiplication routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4443 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-04 19:41:54 +00:00
uz
c200e0ec94 Added division routine. Removed C callable entry points from mul routines,
they're now in common.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4441 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-04 18:23:40 +00:00
uz
7c804513fa The upper 16 bit differ between signed and unsigned multiplication, so while
for 16x16=16, the unsigned routine can be used, regardless of signedness, this
is not true for 16x16=32.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4438 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-04 13:45:27 +00:00
uz
100c470727 Added C callable entry point for the 16x16=32 multiplication.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4435 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-03 17:43:57 +00:00
uz
0c1703f8fd Added 16*16=32 multiplication routine.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4434 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-03 13:40:03 +00:00
uz
fdc7604d8f Added separate 8x8=>16 multiplication routine as start of the multiplication
and division stuff cleanup.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4431 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-02 22:28:02 +00:00
uz
54a8a778eb Remove 65C02 code, because in this case, the value of Y on return is always
zero, which can be used by the optimizer.
                                         


git-svn-id: svn://svn.cc65.org/cc65/trunk@4384 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-20 08:25:58 +00:00
uz
6019580fb6 Removed unused code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4191 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-18 17:42:44 +00:00
uz
1ea503a036 The pleasp.s module is no longer in use.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4094 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-31 12:56:54 +00:00
uz
db69c202a4 Oh well. Decided to throw away the separate implementation for leaa0sp,
because it's not used too much, may sometimes inlined and can easily be
replaced by another entry in leaaxsp.s


git-svn-id: svn://svn.cc65.org/cc65/trunk@4092 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-31 12:22:13 +00:00
uz
bf9d36a2fa Renamed leaasp.s again, this time to leaa0sp.s. Added a new module leaaxsp.s.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4091 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-31 12:15:51 +00:00
uz
a1dd468291 Renamed leasp.s to leaasp.s
git-svn-id: svn://svn.cc65.org/cc65/trunk@4090 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-31 12:10:59 +00:00
uz
c4763e9007 Special cased the division 16 by 8.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4043 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-19 14:51:16 +00:00
uz
acd1233bf2 Greatly improved multiplication routine. Optimized the generic 16x16 one and
added special cases for 8x16 and 8x8. The former is directly called by the
compiler as tosmula0 and tosumula0 resp.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4036 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-17 20:48:28 +00:00
uz
bfc8bd6d74 Added an entry point that clears the high word of rhs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4027 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-16 16:38:52 +00:00
uz
aa7d419165 More entry points for long ops that clear the high word of the lhs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4025 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-15 21:06:06 +00:00
uz
b1f772e9be Added additional entry points that clear the high word of the right operand.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4023 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-15 20:58:35 +00:00
uz
6a26b6e3b4 Added tosicmp0, a special entry point that clears the X register.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4005 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-08-14 22:08:28 +00:00
uz
3c168b4323 A few minor 65C02 optimizations.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3944 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-02-22 15:39:19 +00:00
uz
4812feb44b git-svn-id: svn://svn.cc65.org/cc65/trunk@3863 b7a2c559-68d2-44c3-8de9-860c34a00d81 2008-08-02 22:02:54 +00:00
cuz
a47008cca0 Fixed a bug: Byte three of the remainder was overwritten by byte 4.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3796 b7a2c559-68d2-44c3-8de9-860c34a00d81
2007-08-26 17:25:21 +00:00
cuz
d3ac084997 Add the ltest module to the makefile
git-svn-id: svn://svn.cc65.org/cc65/trunk@3675 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-11-28 14:55:45 +00:00
cuz
eeddbed25b File was removed but is still needed.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3671 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-11-27 22:03:19 +00:00
cuz
5cf71b0dea Removed obsolete modules
git-svn-id: svn://svn.cc65.org/cc65/trunk@3582 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-08-13 21:21:31 +00:00
cuz
82751788fd Fixed a bug: Divisions with a divisor > 0xFFFFFF did not work because the
high byte of the divisor was overwritten instead of the high byte of the
result.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3525 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-07-05 21:01:34 +00:00
cuz
3c4cd1fff9 Call interrupt handlers with carry clear
git-svn-id: svn://svn.cc65.org/cc65/trunk@3499 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-05-05 10:07:17 +00:00
cuz
cbdcab4fdb Change the sematics of callirq and the existing interruptors: The interrupts
must now return carry set if the interrupt has been handled, and carry clear
if not. The callirq routine will stop calling handlers with the first handler
that claims to have handled the interrupt. callirq will return the carry flag
to the caller as it came from the last interruptor called.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3491 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-04-25 20:10:10 +00:00
cuz
6ec87c5dd9 Move initialization code into the init segment
git-svn-id: svn://svn.cc65.org/cc65/trunk@3404 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-02-26 09:06:46 +00:00
cuz
303304fe90 Add definitions for tools so the makefile is useful by itself.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3262 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-10-26 19:28:26 +00:00
cuz
cfef8e1e0d Renamed __IRQFUNC_xxx -> __INTERRUPTOR_xxx
git-svn-id: svn://svn.cc65.org/cc65/trunk@3189 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-09-20 10:24:59 +00:00
cuz
a4c4e995a3 Added lasr.o
git-svn-id: svn://svn.cc65.org/cc65/trunk@3144 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-07-05 22:38:21 +00:00
cuz
c122f18605 New code for the shift functions
git-svn-id: svn://svn.cc65.org/cc65/trunk@3143 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-07-05 22:24:06 +00:00
cuz
368cdbf115 Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@2975 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-04-05 13:36:10 +00:00
cuz
61238a6c4c Small fix
git-svn-id: svn://svn.cc65.org/cc65/trunk@2971 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-04-04 14:29:10 +00:00
cuz
526b10147d Added a specialized callirq routine
git-svn-id: svn://svn.cc65.org/cc65/trunk@2968 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-04-04 14:15:45 +00:00
cuz
e4554505d6 Optimized the condes routine, because it is used to schedule interrupt
handlers on many platforms, so too many cycles are evil.


git-svn-id: svn://svn.cc65.org/cc65/trunk@2962 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-03-25 07:58:58 +00:00
cuz
f210f6db1c Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@2757 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-12-14 18:57:08 +00:00
cuz
9f48c6509c Don't use callax because condes is called in interrupt handlers
git-svn-id: svn://svn.cc65.org/cc65/trunk@2755 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-12-14 17:41:27 +00:00
cuz
99cca3618c Use new assembler syntax
git-svn-id: svn://svn.cc65.org/cc65/trunk@2629 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-11-09 23:00:22 +00:00
cuz
6d8cdae722 Runtime function improvements by Piotr Fusik
git-svn-id: svn://svn.cc65.org/cc65/trunk@2577 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-10-28 08:47:47 +00:00
cuz
23c35f27f8 Improved 65c02 support
git-svn-id: svn://svn.cc65.org/cc65/trunk@2507 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-10-10 17:52:12 +00:00
cuz
5cc79eaf15 Squeezed a few bytes out of the code
git-svn-id: svn://svn.cc65.org/cc65/trunk@2480 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-10-08 21:09:24 +00:00
cuz
a3109620ab Changed rm -f to $(RM)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2385 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-08-20 11:59:27 +00:00
cuz
43f59de557 Redid the last change, because it was bug (A must be saved across the call)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2157 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-05-13 10:00:39 +00:00
cuz
1cdb90926a Replaced the incsp functions by faster (but slightly larger) versions
git-svn-id: svn://svn.cc65.org/cc65/trunk@2146 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-05-04 22:34:16 +00:00
cuz
c2f5cb7cce Added some cycle counts
git-svn-id: svn://svn.cc65.org/cc65/trunk@2043 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-04-12 20:50:58 +00:00