diff options
Diffstat (limited to 'kernel/strlen.S')
| -rw-r--r-- | kernel/strlen.S | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/kernel/strlen.S b/kernel/strlen.S new file mode 100644 index 0000000..6185b94 --- /dev/null +++ b/kernel/strlen.S @@ -0,0 +1,22 @@ +.globl strlen +.type strlen, @function + +/* + * Defined in include/fbos/string.h + * + * size_t strlen(const char *str) + * + * Returns (a0): string length. + * Parameter (a0): string to measure. + * Clobbers: t0, t1. + */ +strlen: + mv t1, a0 +1: + lbu t0, 0(t1) + beqz t0, 2f + addi t1, t1, 1 + j 1b +2: + sub a0, t1, a0 + ret |
