few 6502 and some 65SC02 optimizations
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user