few 6502 and some 65SC02 optimizations

This commit is contained in:
IrgendwerA8
2017-03-12 23:21:43 +01:00
parent 0ec4534bd6
commit 0de44517ac
23 changed files with 272 additions and 78 deletions

View File

@@ -1,5 +1,6 @@
;
; Ullrich von Bassewitz, 06.08.1998
; Christian Krueger, 11-Mar-2017, added 65SC02 optimization
;
; CC65 runtime: function epilogue
;
@@ -13,6 +14,8 @@
.import addysp
.importzp sp
.macpack cpu
leave00:
lda #0
leave0: ldx #0
@@ -24,6 +27,20 @@ leavey0:
ldx #0 ; return < 256
leavey:
jsr addysp ; drop stack frame
.if (.cpu .bitand ::CPU_ISET_65SC02)
leave: tay ; save A a sec
lda (sp) ; that's the pushed arg size
sec ; Count the byte, the count's stored in
adc sp
sta sp
bcc L1
inc sp+1
L1: tya ; Get return value back
.else
leave: pha ; save A a sec
ldy #0
lda (sp),y ; that's the pushed arg size
@@ -33,5 +50,7 @@ leave: pha ; save A a sec
bcc L1
inc sp+1
L1: pla ; Get return value back
.endif
rts