From 699cc8684b1571d2501bac2c8bdf461127a420a1 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 6 Oct 2024 18:07:57 +0200 Subject: Implement division --- tools/builtin.s | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'tools/builtin.s') diff --git a/tools/builtin.s b/tools/builtin.s index 0f5f82c..d7f214d 100644 --- a/tools/builtin.s +++ b/tools/builtin.s @@ -7,6 +7,9 @@ .global exit .type exit, @function +.global _divide_by_zero_error +.type _divide_by_zero_error, @function + .global _start .type _start, @function @@ -51,7 +54,7 @@ printi: addi a0, zero, 1 addi a1, a1, 1 sub a2, s0, a1 - addi a7, zero, 64 + addi a7, zero, 64 # write ecall lw s0, 0(sp) @@ -74,7 +77,7 @@ printc: addi a0, zero, 1 addi a1, s0, -2 addi a2, zero, 2 - addi a7, zero, 64 + addi a7, zero, 64 # write ecall lw s0, 0(sp) @@ -84,10 +87,19 @@ printc: exit: addi a0, zero, 0 - addi a7, zero, 93 + addi a7, zero, 93 # exit ecall # ret +_divide_by_zero_error: + addi a7, zero, 172 # getpid + ecall + + addi a1, zero, 8 # SIGFPE + addi a7, zero, 129 # kill + ecall + ret + _start: call main call exit -- cgit v1.2.3