Don't build the kernel image for cross compiler
This commit is contained in:
81
common.s
81
common.s
@@ -2,7 +2,7 @@
|
||||
# v. 2.0. If a copy of the MPL was not distributed with this file, You can
|
||||
# obtain one at https://mozilla.org/MPL/2.0/.
|
||||
|
||||
.global write_s, write_c, write_i, _print_i
|
||||
.global write_s, write_c
|
||||
.global memcmp, memchr, memmem, memcpy
|
||||
|
||||
.section .text
|
||||
@@ -75,85 +75,6 @@ write_s:
|
||||
addi sp, sp, 32
|
||||
ret
|
||||
|
||||
# Writes a number to a string buffer.
|
||||
#
|
||||
# t0 - Local buffer.
|
||||
# t1 - Constant 10.
|
||||
# t2 - Current character.
|
||||
# t3 - Whether the number is negative.
|
||||
#
|
||||
# Parameters:
|
||||
# a0 - Whole number.
|
||||
# a1 - Buffer pointer.
|
||||
#
|
||||
# Sets a0 to the length of the written number.
|
||||
.type _print_i, @function
|
||||
_print_i:
|
||||
addi sp, sp, -32
|
||||
sw ra, 28(sp)
|
||||
sw s0, 24(sp)
|
||||
addi s0, sp, 32
|
||||
|
||||
li t1, 10
|
||||
addi t0, s0, -9
|
||||
|
||||
li t3, 0
|
||||
bgez a0, .Lprint_i_digit10
|
||||
li t3, 1
|
||||
neg a0, a0
|
||||
|
||||
.Lprint_i_digit10:
|
||||
rem t2, a0, t1
|
||||
addi t2, t2, '0'
|
||||
sb t2, 0(t0)
|
||||
div a0, a0, t1
|
||||
addi t0, t0, -1
|
||||
bne zero, a0, .Lprint_i_digit10
|
||||
|
||||
beq zero, t3, .Lprint_i_write_call
|
||||
addi t2, zero, '-'
|
||||
sb t2, 0(t0)
|
||||
addi t0, t0, -1
|
||||
|
||||
.Lprint_i_write_call:
|
||||
mv a0, a1
|
||||
addi a1, t0, 1
|
||||
sub a2, s0, t0
|
||||
addi a2, a2, -9
|
||||
sw a2, 0(sp)
|
||||
|
||||
call memcpy
|
||||
|
||||
lw a0, 0(sp)
|
||||
|
||||
lw ra, 28(sp)
|
||||
lw s0, 24(sp)
|
||||
addi sp, sp, 32
|
||||
ret
|
||||
|
||||
# Writes a number to the standard output.
|
||||
#
|
||||
# Parameters:
|
||||
# a0 - Whole number.
|
||||
.type write_i, @function
|
||||
write_i:
|
||||
addi sp, sp, -32
|
||||
sw ra, 28(sp)
|
||||
sw s0, 24(sp)
|
||||
addi s0, sp, 32
|
||||
|
||||
addi a1, sp, 0
|
||||
call _print_i
|
||||
|
||||
mv a1, a0
|
||||
addi a0, sp, 0
|
||||
call write_s
|
||||
|
||||
lw ra, 28(sp)
|
||||
lw s0, 24(sp)
|
||||
addi sp, sp, 32
|
||||
ret
|
||||
|
||||
# Prints a character from a0.
|
||||
#
|
||||
# Arguments:
|
||||
|
Reference in New Issue
Block a user