65816-llvm-mos/compare/sumSquares.calypsi.lst
2026-05-25 21:00:32 -05:00

68 lines
3.3 KiB
Text

###############################################################################
# #
# Calypsi ISO C compiler for 65816 version 5.16 #
# 25/May/2026 19:33:49 #
# 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