diff options
author | Finn Thain <fthain@linux-m68k.org> | 2025-03-28 09:39:55 +1100 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2025-07-06 12:50:50 +0200 |
commit | 0da6458417d74449e5daf845cdd4eb4d6ec6ec87 (patch) | |
tree | c5ff8078ade2fc0cfb5c3fc48aa03ada8e959704 | |
parent | 210a1ce8ed4391b64a888b3fb4b5611a13f5ccc7 (diff) |
m68k: Avoid pointless recursion in debug console rendering
The recursive call to console_putc to effect a carriage return is
needlessly slow and complicated. Instead, just clear the column counter
directly. Setup %a0 earlier to avoid a repeated comparison.
Signed-off-by: Finn Thain <fthain@linux-m68k.org>
Tested-by: Stan Johnson <userm57@yahoo.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/a6104f41918bed4fd17f92c45df94ac7a5d30e40.1743115195.git.fthain@linux-m68k.org
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
-rw-r--r-- | arch/m68k/kernel/head.S | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/m68k/kernel/head.S b/arch/m68k/kernel/head.S index 9bd8adaa756d..49e079b0d0b5 100644 --- a/arch/m68k/kernel/head.S +++ b/arch/m68k/kernel/head.S @@ -3533,19 +3533,16 @@ func_start console_putc,%a0/%a1/%d0-%d7 tstl %pc@(L(console_font)) jeq L(console_exit) + lea %pc@(L(console_globals)),%a0 + /* Output character in d7 on console. */ movel ARG1,%d7 cmpib #'\n',%d7 - jbne 1f + jne L(console_not_lf) - /* A little safe recursion is good for the soul */ - console_putc #'\r' -1: - lea %pc@(L(console_globals)),%a0 + clrl %a0@(Lconsole_struct_cur_column) /* implicit \r */ - cmpib #10,%d7 - jne L(console_not_lf) movel %a0@(Lconsole_struct_cur_row),%d0 movel %a0@(Lconsole_struct_num_rows),%d1 cmpl %d1,%d0 |