diff options
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 |
