| /* |
| * linux/include/asm-arm/arch-ebsa110/uncompress.h |
| * |
| * Copyright (C) 1996,1997,1998 Russell King |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| */ |
| |
| /* |
| * This does not append a newline |
| */ |
| static void putstr(const char *s) |
| { |
| unsigned long tmp1, tmp2; |
| __asm__ __volatile__( |
| "ldrb %0, [%2], #1\n" |
| " teq %0, #0\n" |
| " beq 3f\n" |
| "1: strb %0, [%3]\n" |
| "2: ldrb %1, [%3, #0x14]\n" |
| " and %1, %1, #0x60\n" |
| " teq %1, #0x60\n" |
| " bne 2b\n" |
| " teq %0, #'\n'\n" |
| " moveq %0, #'\r'\n" |
| " beq 1b\n" |
| " ldrb %0, [%2], #1\n" |
| " teq %0, #0\n" |
| " bne 1b\n" |
| "3: ldrb %1, [%3, #0x14]\n" |
| " and %1, %1, #0x60\n" |
| " teq %1, #0x60\n" |
| " bne 3b" |
| : "=&r" (tmp1), "=&r" (tmp2) |
| : "r" (s), "r" (0xf0000be0) : "cc"); |
| } |
| |
| /* |
| * nothing to do |
| */ |
| #define arch_decomp_setup() |
| #define arch_decomp_wdog() |