Danny Milosavljevic
311a955b0b
ARM: Implement division and modulus.
...
* module/mescc/armv4/as.scm (armv4:r0/r1): Call "__mesabi_uldiv".
(armv4:r0%r1): Call "__mesabi_uldiv".
2019-09-09 18:33:55 +02:00
Danny Milosavljevic
26b6db0bbe
ARM: Introduce immediate->r0.
...
* module/mescc/armv4/as.scm (immediate->r0): New procedure.
(armv4:local-add): Use it.
(armv4:label-mem-add): Use it.
2019-09-09 18:33:55 +02:00
Danny Milosavljevic
7de32f00fc
ARM: Simplify source formatting.
...
* module/mescc/armv4/as.scm (armv4:local->r): Simplify.
(armv4:local-ptr->r): Indent.
(armv4:r+value): Simplify.
(armv4:r-cmp-value): Simplify.
(armv4:r0+value): Simplify.
2019-09-09 18:33:54 +02:00
Danny Milosavljevic
b8f617d885
ARM: Add "add____%r0,%r1" macro.
...
* lib/arm-mes/arm.M1: Add "add____%r0,%r1" macro.
2019-09-09 18:33:54 +02:00
Danny Milosavljevic
0b4a9abafa
ARM: Add "mov____0x32(%ebp),%r1" macro.
...
* lib/arm-mes/arm.M1: Add "mov____0x32(%ebp),%r1" macro.
2019-09-09 18:33:54 +02:00
Danny Milosavljevic
3147550d19
ARM: Add "strb___%r0,(%r1)" macro.
...
* lib/arm-mes/arm.M1: Add "strb___%r0,(%r1)" macro.
2019-09-09 18:33:54 +02:00
Danny Milosavljevic
6c562bb065
ARM: Fix some typos.
...
* module/mescc/armv4/as.scm (armv4:r-byte-mem-add): Fix typo.
(armv4:r-word-mem-add): Fix typo.
(armv4:byte-r0->r1-mem): Fix typo.
(armv4:word-r0->r1-mem): Fix typo.
2019-09-09 18:33:54 +02:00
Danny Milosavljevic
898d74a63b
ARM: Add "mov____$i32,%r0", "mov____$i32,%r1", "mov____$i32,%r2" macros.
...
* lib/arm-mes/arm.M1: Add "mov____$i32,%r0", "mov____$i32,%r1",
"mov____$i32,%r2" macros.
2019-09-09 18:33:54 +02:00
Danny Milosavljevic
f04484fdf3
ARM: Add "mul____%r1" macro.
...
* lib/arm-mes/arm.M1: Add "mul____%r1" macro.
2019-09-09 18:33:54 +02:00
Danny Milosavljevic
ab0124eab7
ARM: Add sxtb__%r1,%r1.
...
* lib/arm-mes/arm.M1: Add "sxtb__%r1,%r1" macro.
2019-09-09 18:33:53 +02:00
Danny Milosavljevic
3b8961465f
ARM: Fix armv4:zf->r.
...
* module/mescc/armv4/as.scm (armv4:zf->r): Use the correct macros.
2019-09-09 18:33:53 +02:00
Danny Milosavljevic
a252b9ac08
ARM: Fix armv4:xor-zf.
...
* module/mescc/armv4/as.scm (armv4:xor-zf): Use the correct macros.
2019-09-09 18:33:53 +02:00
Danny Milosavljevic
0f5651436b
waitpid: Add case for ARM.
...
* lib/linux/waitpid.c: Add case for ARM.
2019-09-09 18:33:53 +02:00
Danny Milosavljevic
fd7c2d32cd
ARM: Fix function calls.
...
* lib/arm-mes/arm.M1: Delete "ret" macro.
Fix "push___%ebp" macro.
Add "pop____%lr" macro.
Add "push___%lr" macro.
Add "mov____%lr,%r9" macro.
Add "mov____%r9,%pc" macro.
* module/mescc/armv4/as.scm (armv4:function-preamble): Push lr, too.
(armv4:ret): Pop lr, too. Return manually.
2019-09-09 18:33:53 +02:00
Danny Milosavljevic
59f22c5b86
ARM: Use architecture-dependent branch encoding for function calls.
...
* module/mescc/armv4/as.scm (armv4:call-label): Use architecture-dependent
branch encoding.
2019-09-09 18:33:53 +02:00
Danny Milosavljevic
7b2605b347
M1: Add support for ARM-like architectures.
...
* module/mescc/M1.scm (hex2:offset3): Make architecture-dependent.
(info->M1): Allow symbol to be last.
2019-09-09 18:33:52 +02:00
Danny Milosavljevic
d7576125d2
ARM: Add macros "call___*%r0", "call___*%r1".
...
* lib/arm-mes/arm.M1: Add macros "call___*%r0", "call___*%r1".
2019-09-09 18:33:52 +02:00
Danny Milosavljevic
2ad76e4ffb
ARM: Delete duplicate macros "mov____0x8(%ebp),%r0", "mov____0x8(%ebp),%r1",
...
"mov____0x8(%ebp),%r2".
* lib/arm-mes/arm.M1: Delete duplicate macros "mov____0x8(%ebp),%r0",
"mov____0x8(%ebp),%r1", "mov____0x8(%ebp),%r2".
2019-09-09 18:33:52 +02:00
Danny Milosavljevic
d456b51e49
ARM: Delete duplicate macro "mov____0x32,%r1".
...
* lib/arm-mes/arm.M1: Delete duplicate macro "mov____0x32,%r1".
2019-09-09 18:33:52 +02:00
Danny Milosavljevic
fc8b4016fb
ARM: Delete duplicate "je" macro.
...
* lib/arm-mes/arm.M1: Delete duplicate "je" macro.
2019-09-09 18:33:52 +02:00
Danny Milosavljevic
3aaf8774a8
Add ARM C runtime library.
...
* lib/linux/arm-mes/crt1.c: New file.
* lib/linux/arm-mes/mes.c: New file.
* lib/linux/arm-mes/mini.c: New file.
* lib/linux/libc-mini.c: Use them.
2019-09-09 18:33:52 +02:00
Jan Nieuwenhuizen
394db05c9b
ARM: mescc: Support running on mes.
...
* mes/module/mescc/armv4/as.mes: New file.
* mes/module/mescc/armv4/info.mes: New file.
* mes/module/mescc/mescc.mes: Include it.
2019-09-09 18:33:52 +02:00
Danny Milosavljevic
83d8e41020
Add initial ARM implementation.
...
* include/linux/arm/syscall.h: New file.
* lib/arm-mes/arm.M1: New file.
* lib/arm-mes/elf-0footer.hex2: New file.
* lib/arm-mes/elf32-0header.hex2: New file.
* lib/arm-mes/elf32-body-exit-42.hex2: New file.
* lib/arm-mes/elf32-footer-single-main.hex2: New file.
* lib/arm-mes/elf32-header.hex2: New file.
* lib/arm-mes-mescc/exit-42.c: New file.
* lib/arm-mes-mescc/setjmp.c: New file.
* module/mescc/armv4/as.scm: New file.
* module/mescc/armv4/info.scm: New file.
* module/mescc/M1.scm (hex2:offset2): New procedure.
* module/mescc/mescc.scm: Include (mescc armv4 info).
(hex2:offset3): New procedure.
(info->M1): Use them.
* build-aux/build-guile.sh: Compile them.
2019-09-09 18:33:51 +02:00
Jan Nieuwenhuizen
314e25e532
doc: Post-release update.
...
* doc/announce/ANNOUNCE-0.20: Update.
* guix/git/mes.scm (mes): Update.
2019-09-09 16:49:03 +02:00
Jan Nieuwenhuizen
5222aeee7f
Release 0.20.
...
* configure (VERSION): Update to 0.20.
(main): Likewise.
* configure.sh (VERSION): Likewise.
* guix/git/mes.scm (mes, mes.git): Likewise.
2019-09-09 16:42:25 +02:00
Jan Nieuwenhuizen
a76b87fab9
doc: Release update.
...
* BLURB: New file.
* AUTHORS: Update.
* HACKING: Update.
* INSTALL: Update.
* NEWS: Update.
* README: Update.
* doc/images/gcc-mesboot-graph.dot: Update.
* doc/mes.texi: Update.
* simple.sh: Update.
* doc/announce/ANNOUNCE-0.20: New file.
2019-09-09 16:42:23 +02:00
Jan Nieuwenhuizen
bc2886e8ba
guix: Update mescc-tools to 0.6.1.
...
* guix/git/mes.scm (mescc-tools): Update to 0.6.1.
* configure: Check for mescc-tools versions 0.6 or higher.
2019-09-09 16:42:13 +02:00
Jan Nieuwenhuizen
99903dce06
build: Create ascii signature.
...
* build-aux/GNUmakefile.in (sign): Create ascii signature.
2019-09-09 16:41:46 +02:00
Jan Nieuwenhuizen
507a320cb0
guix: Update Nyacc to 0.99.
...
* guix/git/mes.scm (nyacc): Update to 0.99.
2019-09-09 16:04:16 +02:00
Jan Nieuwenhuizen
2ba9d89af8
doc: Add PORTING.
...
* PORTING: New file.
2019-09-09 16:04:16 +02:00
Jan Nieuwenhuizen
1b47face21
doc: Typos. Thanks, dddddd.
...
* doc/announce/ANNOUNCE-0.11: Typo.
* doc/announce/ANNOUNCE-0.12: Typo.
* doc/announce/ANNOUNCE-0.13: Typo.
* doc/announce/ANNOUNCE-0.14: Typo.
2019-09-09 16:04:16 +02:00
Jan Nieuwenhuizen
c1bc77a1fb
mescc: Remove dead code. Thanks Mark Weaver.
...
* module/mescc/compile.scm (field-size): Remove dead function.
2019-09-09 16:04:16 +02:00
Jan Nieuwenhuizen
f33de25b96
guix: Update packaging.
...
* build-aux/manifest.scm (string-append):
* guix/git/mes.scm (nyacc, git-file?): Remove.
(mescc-tools): Bump to 0.6.0.
(%source-dir): New variable.
(mes.git): Ues it.
* guix.scm: Rename from .guix.scm.
2019-09-09 16:04:16 +02:00
Jan Nieuwenhuizen
613bd96abe
build: Do not generate ChangeLog from tarball.
...
* configure (main): Set .git-for-build.
* build-aux/install.sh.in (DESTDIR): Use it as canary to skip
ChangeLog rebuild.
2019-09-09 16:04:16 +02:00
Jan Nieuwenhuizen
2cc6d5a012
build: Use mesar instead of ar.
...
* scripts/mesar.in: Rename from ar.in. Update users.
* build-aux/build.sh.in (LIBS): Update.
* build-aux/check.sh.in (recheck): Likwise.
* build-aux/install.sh.in (DESTDIR): Likwise.
* configure (main): Likwise.
* configure.sh (mes_system): Likwise.
* .gitignore: Update.
2019-09-09 16:04:16 +02:00
Jan Nieuwenhuizen
3bed314d94
getopt: Remove old FSF address, thanks Vagrant.
...
* lib/posix/getopt.c: Remove old FSF address.
2019-09-09 16:04:15 +02:00
Danny Milosavljevic
15a39f0efe
Add missing #include.
...
* lib/tests/scaffold/55-char-array.c: Add missing #include.
2019-09-09 16:04:15 +02:00
Danny Milosavljevic
e2dfaef89e
Add missing #include.
...
* lib/tests/io/90-stat.c: Add missing #include.
2019-09-09 16:04:15 +02:00
Danny Milosavljevic
5f82a697b3
Add missing #include.
...
* lib/posix/getcwd.c: Add missing #include.
2019-09-09 16:04:15 +02:00
Jan Nieuwenhuizen
2db5ec2f55
signal: Use SA_RESTORER on x86-64.
...
* lib/linux/signal.c (signal)[x86_64]: Avoid segfault by setting
SA_RESTORER flag.
2019-09-09 16:04:15 +02:00
Danny Milosavljevic
23d857c834
signal: Add comment on why we don't use the restorer.
...
* lib/linux/signal.c: Add comment on why we don't use the restorer.
2019-09-09 16:04:15 +02:00
Danny Milosavljevic
4a183fa1cf
signal: Remove SA_SIGINFO.
...
* lib/linux/signal.c (signal): Remove SA_SIGINFO.
2019-09-09 16:04:15 +02:00
Danny Milosavljevic
3e6306a5ce
signal: Don't use custom restorer.
...
* lib/linux/signal.c (signal): Don't use custom restorer.
2019-09-09 16:04:14 +02:00
Danny Milosavljevic
02fdead244
signal: Use SA_SIGINFO (like glibc).
...
* lib/linux/signal.c (_restorer): Rename to...
(_restorer_for_siginfo): ...this.
(signal): Use it. Use SA_SIGINFO.
2019-09-09 16:04:14 +02:00
Danny Milosavljevic
e8bbe21499
signal: Make sure that the signal mask is actually unsigned long.
...
* lib/linux/signal.c (signal): Make sure that the signal mask is actually
unsigned long.
2019-09-09 16:04:14 +02:00
Danny Milosavljevic
5754e379af
Delete "__sigmask".
...
Follow-up to 6d95b89759d3c598fc84194429ae8c57249daa1a
* lib/linux/signal.c (__sigmask): Delete definition.
2019-09-09 16:04:14 +02:00
Danny Milosavljevic
3f1ba73fc7
Fix "struct sigaction" structure for rt_sigaction.
...
* include/signal.h (sigset_t): Increase size.
* lib/linux/signal.c (signal): Use new sigset_t.
2019-09-09 16:04:14 +02:00
Danny Milosavljevic
181d1e11ea
Inherit CFLAGS for mes.
...
* build-aux/check.sh.in: Inherit CFLAGS for mes.
2019-09-09 16:04:14 +02:00
Danny Milosavljevic
dadf07a484
Fix typo.
...
* build-aux/build.sh.in: Fix typo in "CFLAGS".
2019-09-09 16:04:14 +02:00
Danny Milosavljevic
c7d050c0cd
tests: Fail early on nonexistent file.
...
* lib/tests/io/90-stat.c (main): Fail early on nonexistent file.
2019-09-09 16:04:13 +02:00