diff options
| author | Miquel Sabaté Solà <mikisabate@gmail.com> | 2024-11-20 15:30:44 +0000 |
|---|---|---|
| committer | Miquel Sabaté Solà <mikisabate@gmail.com> | 2024-12-05 16:02:50 +0100 |
| commit | 9a3324f50679177401eecdedcf80f25ddcdd9042 (patch) | |
| tree | a1a324eee4aab58e3eff30f43099f726c39b3e4d /arch/riscv/usr/string.S | |
| parent | d15d2ecae1faaaaed3251f64fa998b8d325c5c92 (diff) | |
| download | farga-9a3324f50679177401eecdedcf80f25ddcdd9042.tar.gz farga-9a3324f50679177401eecdedcf80f25ddcdd9042.zip | |
usr: Add a strcmp example
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'arch/riscv/usr/string.S')
| -rw-r--r-- | arch/riscv/usr/string.S | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/riscv/usr/string.S b/arch/riscv/usr/string.S index 0f3bcc1..3878074 100644 --- a/arch/riscv/usr/string.S +++ b/arch/riscv/usr/string.S @@ -91,3 +91,21 @@ palindrome_yes: palindrome_no: li a0, 0 jr ra + +.globl mstrcmp +.type mstrcmp, @function + +// int mstrcmp(const char *, const char *); +mstrcmp: +1: + lbu t0, 0(a0) + lbu t1, 0(a1) + bne t0, t1, 2f + addi a0, a0, 1 + addi a1, a1, 1 + bnez t0, 1b + li a0, 0 + ret +2: + sub a0, t0, t1 + ret |
