68 lines
3.3 KiB
Text
68 lines
3.3 KiB
Text
###############################################################################
|
|
# #
|
|
# Calypsi ISO C compiler for 65816 version 5.16 #
|
|
# 13/May/2026 15:46:15 #
|
|
# Command line: --speed -O 2 --64bit-doubles sumSquares.c -o #
|
|
# /tmp/sumSquares.calypsi.elf --list-file #
|
|
# sumSquares.calypsi.lst #
|
|
# #
|
|
###############################################################################
|
|
|
|
\ 000000 .rtmodel version,"1"
|
|
\ 000000 .rtmodel codeModel,"large"
|
|
\ 000000 .rtmodel dataModel,"small"
|
|
\ 000000 .rtmodel core,"65816"
|
|
\ 000000 .rtmodel huge,"0"
|
|
\ 000000 .rtmodel target,"none-specified"
|
|
\ 000000 .extern _Dp
|
|
\ 000000 .extern _Mul16
|
|
\ 000000 .extern _Vfp
|
|
0001 // Simple function for compiler-quality comparison.
|
|
0002 unsigned long sumSquares(unsigned short n) {
|
|
\ 000000 .section farcode,text
|
|
\ 000000 .public sumSquares
|
|
\ 000000 5a sumSquares: phy
|
|
\ 000001 5a phy
|
|
\ 000002 8301 sta 1,s
|
|
0003 unsigned long total = 0;
|
|
\ 000004 64.. stz dp:.tiny _Dp
|
|
\ 000006 64.. stz dp:.tiny (_Dp+2)
|
|
0004 for (unsigned short i = 1; i <= n; i++) {
|
|
\ 000008 a90100 lda ##1
|
|
\ 00000b 8303 sta 3,s
|
|
\ 00000d a301 `?L5`: lda 1,s
|
|
\ 00000f c303 cmp 3,s
|
|
\ 000011 b007 bcs `?L4`
|
|
0005 total += (unsigned long)i * i;
|
|
0006 }
|
|
0007 return total;
|
|
\ 000013 a6.. ldx dp:.tiny (_Dp+2)
|
|
\ 000015 a5.. lda dp:.tiny _Dp
|
|
0008 }
|
|
\ 000017 7a ply
|
|
\ 000018 7a ply
|
|
\ 000019 6b rtl
|
|
\ 00001a a303 `?L4`: lda 3,s
|
|
\ 00001c aa tax
|
|
\ 00001d 22...... jsl long:_Mul16
|
|
\ 000021 18 clc
|
|
\ 000022 65.. adc dp:.tiny _Dp
|
|
\ 000024 48 pha
|
|
\ 000025 8a txa
|
|
\ 000026 65.. adc dp:.tiny (_Dp+2)
|
|
\ 000028 aa tax
|
|
\ 000029 68 pla
|
|
\ 00002a 86.. stx dp:.tiny (_Dp+2)
|
|
\ 00002c 85.. sta dp:.tiny _Dp
|
|
\ 00002e a303 lda 3,s
|
|
\ 000030 1a inc a
|
|
\ 000031 8303 sta 3,s
|
|
\ 000033 80d8 bra `?L5`
|
|
|
|
##########################
|
|
# #
|
|
# Memory sizes (decimal) #
|
|
# #
|
|
##########################
|
|
|
|
Executable (Text): 53 bytes
|