Compare commits
1 Commits
8441a7cda3
...
2c45a74187
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c45a74187 |
@ -8,9 +8,9 @@ _input:
|
|||||||
mov.l size,r9
|
mov.l size,r9
|
||||||
|
|
||||||
/* returns stride in r1 */
|
/* returns stride in r1 */
|
||||||
mov.l input_stride_ptr,r0
|
mova _calculate_stride,r0
|
||||||
jsr @r0
|
jsr @r0
|
||||||
mov r8,r1 /* r1 arg: copy of r8 */
|
mov r8,r1
|
||||||
|
|
||||||
mov r1,r10 /* r10: stride */
|
mov r1,r10 /* r10: stride */
|
||||||
|
|
||||||
@ -134,8 +134,20 @@ end_of_slope:
|
|||||||
mov #-1,r1 /* -1: end of slope */
|
mov #-1,r1 /* -1: end of slope */
|
||||||
|
|
||||||
.balign 4
|
.balign 4
|
||||||
div32_16_ptr: .long _div32_16
|
div32_16_ptr: .long _div32_16
|
||||||
input_stride_ptr: .long _input_stride
|
|
||||||
|
.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
|
.balign 4
|
||||||
start: .long _binary_2020_day3_input_txt_start
|
start: .long _binary_2020_day3_input_txt_start
|
||||||
|
|||||||
@ -11,8 +11,7 @@
|
|||||||
2020/day3/solution.o \
|
2020/day3/solution.o \
|
||||||
2020/day3/sample.txt.o \
|
2020/day3/sample.txt.o \
|
||||||
2020/day3/input.txt.o \
|
2020/day3/input.txt.o \
|
||||||
common/div32_16.o \
|
common/div32_16.o
|
||||||
common/input_stride.o
|
|
||||||
|
|
||||||
2020/day3/solution.elf: $(2020_DAY3_OBJ)
|
2020/day3/solution.elf: $(2020_DAY3_OBJ)
|
||||||
$(DEFAULT_LINK)
|
$(DEFAULT_LINK)
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
467..114..
|
|
||||||
...*......
|
|
||||||
..35..633.
|
|
||||||
......#...
|
|
||||||
617*......
|
|
||||||
.....+.58.
|
|
||||||
..592.....
|
|
||||||
......755.
|
|
||||||
...$.*....
|
|
||||||
.664.598..
|
|
||||||
@ -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
|
|
||||||
11
2023/deps.mk
11
2023/deps.mk
@ -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
|
|
||||||
1
Makefile
1
Makefile
@ -79,6 +79,5 @@ MAKEFLAGS += --no-builtin-rules
|
|||||||
|
|
||||||
include 2019/deps.mk
|
include 2019/deps.mk
|
||||||
include 2020/deps.mk
|
include 2020/deps.mk
|
||||||
include 2023/deps.mk
|
|
||||||
|
|
||||||
all: $(subst .elf,.bin,$(ALL_ELF))
|
all: $(subst .elf,.bin,$(ALL_ELF))
|
||||||
|
|||||||
@ -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 */
|
|
||||||
@ -6,7 +6,6 @@ _parse_base10:
|
|||||||
/* return r0 = number of digits */
|
/* return r0 = number of digits */
|
||||||
mov #0,r1 /* r1: accumulated number */
|
mov #0,r1 /* r1: accumulated number */
|
||||||
mov r8,r0 /* r0: number of digits */
|
mov r8,r0 /* r0: number of digits */
|
||||||
add #1,r0
|
|
||||||
parse_base10_loop:
|
parse_base10_loop:
|
||||||
mov.b @r8+,r2
|
mov.b @r8+,r2
|
||||||
add #-48,r2 /* ascii '0' */
|
add #-48,r2 /* ascii '0' */
|
||||||
@ -21,6 +20,5 @@ parse_base10_loop:
|
|||||||
bra parse_base10_loop
|
bra parse_base10_loop
|
||||||
add r2,r1
|
add r2,r1
|
||||||
parse_base10_rts:
|
parse_base10_rts:
|
||||||
sub r8,r0
|
|
||||||
rts
|
rts
|
||||||
neg r0,r0
|
sub r8,r0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user