1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-24 11:31:31 +00:00

A few minor 65C02 optimizations.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3944 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-02-22 15:39:19 +00:00
parent a0cd736adb
commit 3c168b4323
4 changed files with 40 additions and 16 deletions

View File

@ -8,14 +8,21 @@
.import addysp1
.importzp sp, sreg, tmp1
.macpack cpu
; EAX = TOS + EAX
tosaddeax:
ldy #0
clc
adc (sp),y ; byte 0
clc
.if (.cpu .bitand CPU_ISET_65SC02)
adc (sp) ; 65SC02 version - saves 2 cycles
ldy #1
.else
ldy #0
adc (sp),y ; lo byte
iny
.endif
sta tmp1 ; use as temp storage
iny
txa
adc (sp),y ; byte 1
tax

View File

@ -11,13 +11,20 @@
.import addysp1
.importzp sp, sreg
.macpack cpu
tossubeax:
ldy #0
sec
sec
eor #$FF
adc (sp),y ; byte 0
.if (.cpu .bitand CPU_ISET_65SC02)
adc (sp) ; 65SC02 version - saves 2 cycles
ldy #1
.else
ldy #0
adc (sp),y ; lo byte
iny
.endif
pha ; Save low byte
iny
txa
eor #$FF
adc (sp),y ; byte 1

View File

@ -1,5 +1,5 @@
;
; Ullrich von Bassewitz, 21.08.1998
; Ullrich von Bassewitz, 1998-08-21, 2009-02-22
;
; CC65 runtime: Pop TOS into sreg
;
@ -8,15 +8,20 @@
.import incsp2
.importzp sp, sreg
.macpack cpu
popsreg:
pha ; save A
ldy #0
lda (sp),y ; get lo byte
sta sreg ; store it
iny
lda (sp),y ; get hi byte
ldy #1
lda (sp),y ; get hi byte
sta sreg+1 ; store it
.if (.cpu .bitand ::CPU_ISET_65SC02)
lda (sp) ; get lo byte
.else
dey
lda (sp),y ; get lo byte
.endif
sta sreg ; store it
pla ; get A back
jmp incsp2 ; bump stack and return

View File

@ -21,6 +21,7 @@
; Use macros for better readability
.macpack generic
.macpack cpu
; ----------------------------------------------------------------------------
@ -38,7 +39,11 @@
lda sp+1
sta initialsp+1
sbc #>__STACKSIZE__
add #1 ; Add 256 bytes safety area
.if (.cpu .bitand ::CPU_ISET_65SC02)
ina ; Add 256 bytes safety area
.else
add #1 ; Add 256 bytes safety area
.endif
sta lowwater+1
rts