[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [WIP] Add ARM backend.
From: |
Jan Nieuwenhuizen |
Subject: |
Re: [WIP] Add ARM backend. |
Date: |
Tue, 02 Jun 2020 10:18:51 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Danny Milosavljevic writes:
> * build-aux/build-guile.sh: Add ARM backend.
> * lib/arm-mes/arm.M1: New file.
> * module/mescc/armv4/as.scm: New file.
> * module/mescc/armv4/info.scm: New file.
> * module/mescc/M1.scm (info->M1): Support ARM symbolic instructions, including
> little endian instructions. Align functions.
\o/
> diff --git a/build-aux/build-guile.sh b/build-aux/build-guile.sh
> index bd304509..4cee61e5 100755
> --- a/build-aux/build-guile.sh
> +++ b/build-aux/build-guile.sh
> @@ -34,6 +34,8 @@ module/mescc/M1.scm
> module/mescc/as.scm
> module/mescc/bytevectors.scm
> module/mescc/compile.scm
> +module/mescc/armv4/as.scm
> +module/mescc/armv4/info.scm
So happy to see this!
> module/mescc/i386/as.scm
> module/mescc/i386/info.scm
> module/mescc/x86_64/as.scm
> diff --git a/lib/arm-mes/arm.M1 b/lib/arm-mes/arm.M1
> new file mode 100644
> index 00000000..b08e36a2
> --- /dev/null
> +++ b/lib/arm-mes/arm.M1
> @@ -0,0 +1,406 @@
> +### GNU Mes --- Maxwell Equations of Software
> +### Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
> +### Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
Please verify if you should add 2020?
> +# Note: r9 is used as scratch register and is assumed to not contain
> anything important!
> +
> +# reduced instruction set: r0, r1 (some r2 for shift, r3 for mul, div)
An amazing piece of work. I counted ~220 instructions where x86 uses
~200. I'm also very happy to see how well this worked.
Congratulations, LGTM
Janneke
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com