>>109730173
>>109730355
I also have strcmp and memcmp in my repository:
# =============================================================================
# strcmp: compare strings at a0 and a1. Assume null termination
# Returns: a0 = 0 if equal, nonzero otherwise
# =============================================================================
.globl strcmp
strcmp:
lbu t0, 0(a0)
lbu t1, 0(a1)
bne t0, t1, .sc_ne
beqz t0, .sc_eq
addi a0, a0, 1
addi a1, a1, 1
j strcmp
.sc_eq:
li a0, 0
ret
.sc_ne:
sub a0, t0, t1
ret
# =============================================================================
# memcmp: compare a2 bytes at a0 and a1
# Returns: a0 = 0 if equal, nonzero otherwise
# =============================================================================
.globl memcmp
memcmp:
beqz a2, .mc_eq
lbu t0, 0(a0)
lbu t1, 0(a1)
bne t0, t1, .mc_ne
addi a0, a0, 1
addi a1, a1, 1
addi a2, a2, -1
j memcmp
.mc_eq:
li a0, 0
ret
.mc_ne:
sub a0, t0, t1
ret
but that's about it for now