diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-10-06 18:07:57 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-10-06 18:09:08 +0200 |
| commit | 699cc8684b1571d2501bac2c8bdf461127a420a1 (patch) | |
| tree | 9caecb24007eda52a074f348bbd613da033a2069 /tools/builtin.s | |
| parent | 35742aa52587400950cf25170c2247f98f498d4d (diff) | |
| download | elna-699cc8684b1571d2501bac2c8bdf461127a420a1.tar.gz | |
Implement division
Diffstat (limited to 'tools/builtin.s')
| -rw-r--r-- | tools/builtin.s | 18 |
1 files changed, 15 insertions, 3 deletions
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 |
