mescc: Tinycc support: struct assign by value.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 6 Aug 2017 16:49:19 +0000 (18:49 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 6 Aug 2017 16:49:19 +0000 (18:49 +0200)
commit11d240e756f48c28664e799fe2f8d442bd4a11b7
tree7c8dee1122265e264e082354c69ec101fb6c1770
parente616d6120b0e19e53a0e73c84acf5196de4907e7
mescc: Tinycc support: struct assign by value.

* module/language/c99/compiler.mes (base->ident): Remove.
  (accu->ident): Use them to support assign of size >4 by value.
* scaffold/tests/7h-struct-assign.c: Test it.
* make.scm (add-scaffold-test): Build it.
* module/mes/as-i386.mes (i386:base->local): Remove.
  (i386:accu*n->local):
  (i386:accu*n->label): New functions.
* module/mes/as-i386.scm: Export them.
* stage0/x86.M1: (mov____%ebx,0x32):
  (mov____%ebx,0x32(%ebp)):
  (mov____%ebx,0x8(%ebp)):
  (mov____%ebx,0x8(%edx)):
  (mov____%ecx,0x32(%ebp)):
  (mov____%ecx,0x8(%ebp)):
  (mov____0x32(%eax),%ebx):
  (mov____0x32(%eax),%ecx):
  (mov____0x8(%eax),%ebx): New define.
make.scm
module/language/c99/compiler.mes
module/mes/as-i386.mes
module/mes/as-i386.scm
scaffold/tests/7h-struct-assign.c [new file with mode: 0644]
stage0/x86.M1