wip
This commit is contained in:
parent
98746b4fb4
commit
8441a7cda3
@ -8,9 +8,9 @@ _input:
|
|||||||
mov.l size,r9
|
mov.l size,r9
|
||||||
|
|
||||||
/* returns stride in r1 */
|
/* returns stride in r1 */
|
||||||
mova _calculate_stride,r0
|
mov.l input_stride_ptr,r0
|
||||||
jsr @r0
|
jsr @r0
|
||||||
mov r8,r1
|
mov r8,r1 /* r1 arg: copy of r8 */
|
||||||
|
|
||||||
mov r1,r10 /* r10: stride */
|
mov r1,r10 /* r10: stride */
|
||||||
|
|
||||||
@ -135,19 +135,7 @@ 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,7 +11,8 @@
|
|||||||
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)
|
||||||
|
10
2023/day3/sample.txt
Normal file
10
2023/day3/sample.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
467..114..
|
||||||
|
...*......
|
||||||
|
..35..633.
|
||||||
|
......#...
|
||||||
|
617*......
|
||||||
|
.....+.58.
|
||||||
|
..592.....
|
||||||
|
......755.
|
||||||
|
...$.*....
|
||||||
|
.664.598..
|
29
2023/day3/solution.s
Normal file
29
2023/day3/solution.s
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
.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
Normal file
11
2023/deps.mk
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
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,5 +79,6 @@ 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))
|
||||||
|
11
common/input_stride.s
Normal file
11
common/input_stride.s
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
.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 */
|
Loading…
x
Reference in New Issue
Block a user