mescc: Tinycc support: foo.bar = foo.baz = bla.
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 28 Jul 2017 20:45:32 +0000 (22:45 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 28 Jul 2017 20:45:32 +0000 (22:45 +0200)
commit683d5bf1d2e3ed240acd6707141d9b644bc25e52
tree2116781f703ea29b5dbf7504cf8b46b13fe826ac
parentb6375aa0165e7b353a9a24f503ca0952ca81b198
mescc: Tinycc support: foo.bar = foo.baz = bla.

* module/language/c99/compiler.mes (expr->base*): New function.
 (expr->accu): Use it to have value in accu for assignments.
* scaffold/tests/77-pointer-assign.c (test): Test it.
* stage0/x86.M1 (mov____%ecx,(%edx), mov___(%eax),%ecx): New define.
* module/mes/as-i386.mes (accu-mem->base->mem): New function.
  (i386:byte-base->accu-mem+n):
  (i386:byte-base->accu-mem):
  (i386:base-mem->accu-mem):
  (i386:base->accu-mem):
  (i386:value->accu-mem+n):
  (i386:value->accu-mem):
  (i386:accu->base-mem+n):
  (i386:byte-accu->base-mem):
  (i386:accu->base-mem): Rename from accu-address, base-address.
  Update callers.
* module/mes/as-i386.scm (mes): Update exports.
module/language/c99/compiler.mes
module/mes/as-i386.mes
module/mes/as-i386.scm
scaffold/tests/77-pointer-assign.c
stage0/x86.M1