Compare commits

..

1 Commits

Author SHA1 Message Date
2c45a74187 parse_base10: add digit count 2024-04-09 09:48:11 +08:00
8 changed files with 18 additions and 71 deletions

View File

@ -8,9 +8,9 @@ _input:
mov.l size,r9
/* returns stride in r1 */
mov.l input_stride_ptr,r0
mova _calculate_stride,r0
jsr @r0
mov r8,r1 /* r1 arg: copy of r8 */
mov r8,r1
mov r1,r10 /* r10: stride */
@ -134,8 +134,20 @@ end_of_slope:
mov #-1,r1 /* -1: end of slope */
.balign 4
div32_16_ptr: .long _div32_16
input_stride_ptr: .long _input_stride
div32_16_ptr: .long _div32_16
.balign 4
_calculate_stride:
/* r8: const input start */
/* r1: input start (initialized by caller) */
/* return r1 : stride */
loop:
mov.b @r1+,r0
cmp/eq #0xa,r0 /* ascii space */
bf loop
sub r8,r1 /* r1 - r8 r1 */
rts
nop
.balign 4
start: .long _binary_2020_day3_input_txt_start

View File

@ -11,8 +11,7 @@
2020/day3/solution.o \
2020/day3/sample.txt.o \
2020/day3/input.txt.o \
common/div32_16.o \
common/input_stride.o
common/div32_16.o
2020/day3/solution.elf: $(2020_DAY3_OBJ)
$(DEFAULT_LINK)

View File

@ -1,10 +0,0 @@
467..114..
...*......
..35..633.
......#...
617*......
.....+.58.
..592.....
......755.
...$.*....
.664.598..

View File

@ -1,29 +0,0 @@
.global _start
_start:
mov.l start,r8
mov.l end,r9
/* returns stride in r1 */
mov.l input_stride_ptr,r0
jsr @r0
mov r8,r1 /* r1 arg: copy of r8 */
mov r1,r10 /* r10: stride */
/* return r1: number */
/* return r0: digits */
next_number:
mov.l parse_base10_ptr,r0
jsr @r0
mov r8,r11 /* r11: temporary for r8 original value */
cmp/eq #0,r0
bt next_number
nop
.balign 4
parse_base10_ptr: .long _parse_base10
input_stride_ptr: .long _input_stride
.balign 4
start: .long _binary_2023_day3_sample_txt_start
end: .long _binary_2023_day3_sample_txt_end

View File

@ -1,11 +0,0 @@
2023_DAY3_OBJ = \
2023/day3/solution.o \
2023/day3/sample.txt.o \
common/parse_base10.o \
common/input_stride.o
2023/day3/solution.elf: $(2023_DAY3_OBJ)
$(DEFAULT_LINK)
ALL_ELF += \
2023/day3/solution.elf

View File

@ -79,6 +79,5 @@ MAKEFLAGS += --no-builtin-rules
include 2019/deps.mk
include 2020/deps.mk
include 2023/deps.mk
all: $(subst .elf,.bin,$(ALL_ELF))

View File

@ -1,11 +0,0 @@
.global _input_stride
_input_stride:
/* r8: const input start */
/* r1: input start (initialized by caller) */
/* return r1 : stride */
loop:
mov.b @r1+,r0
cmp/eq #0xa,r0 /* ascii space */
bf loop
rts
sub r8,r1 /* r1 - r8 r1 */

View File

@ -6,7 +6,6 @@ _parse_base10:
/* return r0 = number of digits */
mov #0,r1 /* r1: accumulated number */
mov r8,r0 /* r0: number of digits */
add #1,r0
parse_base10_loop:
mov.b @r8+,r2
add #-48,r2 /* ascii '0' */
@ -21,6 +20,5 @@ parse_base10_loop:
bra parse_base10_loop
add r2,r1
parse_base10_rts:
sub r8,r0
rts
neg r0,r0
sub r8,r0