Skip to content

Commit

Permalink
h8300: gcc-8.1 fix
Browse files Browse the repository at this point in the history
Since gcc 8.1 does not generate an assignment statement to er 0,
we had to explicitly write it.

Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
  • Loading branch information
Yoshinori Sato committed Aug 22, 2018
1 parent 686320e commit 811d1b0
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions arch/h8300/kernel/sim-console.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@

static void sim_write(struct console *con, const char *s, unsigned n)
{
register const int fd __asm__("er0") = 1; /* stdout */
register const char *_ptr __asm__("er1") = s;
register const unsigned _len __asm__("er2") = n;

__asm__(".byte 0x5e,0x00,0x00,0xc7\n\t" /* jsr @0xc7 (sys_write) */
: : "g"(fd), "g"(_ptr), "g"(_len));
__asm__("sub.l er0,er0\n\t" /* er0 = 1 (stdout) */
"inc.l #1,er0\n\t"
".byte 0x5e,0x00,0x00,0xc7\n\t" /* jsr @0xc7 (sys_write) */
: : "g"(_ptr), "g"(_len):"er0");
}

static int __init sim_setup(struct earlycon_device *device, const char *opt)
Expand Down

0 comments on commit 811d1b0

Please sign in to comment.