mes/scaffold/tests
Jan Nieuwenhuizen 0f87473105
mescc: Tinycc support: Support bit-fields.
* module/language/c99/compiler.mes (struct->fields): Support bit-fields.
  (ast->type):
  (field-field):
  (field-offset):
  (expr->accu*):
  (expr->accu):
  (struct-field):
  (->size):
* module/language/c99/info.scm (<bit-field>): New type.
* stage0/x86.M1 (and____$i32,%eax, and____(%edx),%eax,
  mov____(%edx),%eax, or____(%edx),%eax): New macro.
* module/mes/as-i386.mes (i386:base-mem->accu): Use
  it.
  (i386:accu-and, i386:accu-and-base-mem, i386:accu-or-base-mem): New
  function.
* module/mes/as-i386.scm: Export them.
* scaffold/tests/7q-bit-field.c: Test it.
* build-aux/check-mescc.sh (tests): Run it.
2018-05-13 17:05:28 +02:00
..
00-exit-0.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
01-return-0.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
02-return-1.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
02-return-1.exit test: enable all tests, use expect count, add tinycc tests. 2018-05-01 16:50:29 +02:00
03-call.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
04-call-0.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
4a-char-array.c mescc: Tinycc support: Anonymous string array. 2018-05-12 12:03:01 +02:00
05-call-1.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
05-call-1.exit test: enable all tests, use expect count, add tinycc tests. 2018-05-01 16:50:29 +02:00
06-call-!1.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
07-include.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7a-struct-char-array.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7b-struct-int-array.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7c-dynarray.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7d-cast-char.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7e-struct-array-access.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7f-struct-pointer-arithmetic.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7g-struct-byte-word-field.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7h-struct-assign.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7i-struct-struct.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
7j-strtoull.c mescc: scaffold: misc cleanups. 2017-12-03 23:03:09 +01:00
7k-for-each-elem.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7l-struct-any-size-array.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7m-struct-char-array-assign.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7n-struct-struct-array.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
7o-struct-pre-post.c mescc: Tinycc support: Implement (foo--)->bar and permutations. 2018-05-13 13:50:32 +02:00
7p-struct-cast.c mescc: Tinycc support: Implement ((struct foo*)p)->bar. 2018-05-12 00:20:51 +02:00
7q-bit-field.c mescc: Tinycc support: Support bit-fields. 2018-05-13 17:05:28 +02:00
10-if-0.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
11-if-1.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
12-if-==.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
13-if-!=.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
14-if-goto.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
15-if-!f.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
16-if-t.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
20-while.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
21-char[].c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
22-while-char[].c doc: Release udpate. 2017-11-21 19:22:26 +01:00
23-pointer.c mescc: Refactor type system: WIP 2018-05-10 12:40:07 +02:00
30-strlen.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
31-eputs.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
32-compare.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
33-and-or.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
34-pre-post.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
35-compare-char.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
36-compare-arithmetic.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
37-compare-assign.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
38-compare-call.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
40-if-else.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
41-?.c mescc: Tinycc support: Fix for ?-operator. 2018-05-11 15:13:55 +02:00
42-goto-label.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
43-for-do-while.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
44-switch.c mescc: scaffold: misc cleanups. 2017-12-03 23:03:09 +01:00
45-void-call.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
46-function-static.c mescc: Refactor type system: WIP 2018-05-10 12:40:07 +02:00
47-function-expression.c mescc: Support functions in expression. 2018-05-04 13:58:27 +02:00
48-function-destruct.c mescc: Tinycc support: Valued function assign. 2018-05-11 13:34:45 +02:00
49-global-static.c mescc: Tinycc support: Valued function assign. 2018-05-11 13:34:45 +02:00
50-assert.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
51-strcmp.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
52-itoa.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
53-strcpy.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
54-argv.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
60-math.c core: Fixes for int-max, int-min. 2018-05-02 23:11:27 +02:00
61-array.c core: Add setenv. 2018-04-07 09:21:51 +02:00
62-array.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
63-struct-cell.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
64-make-cell.c mescc: Refactor type system: WIP 2018-05-10 12:40:07 +02:00
65-read.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
66-local-char-array.c mescc: Mescc-tools support: char foo[BAR] = {'a', 'b', 'c'}. 2017-11-27 19:51:18 +01:00
70-printf.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
71-struct-array.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
72-typedef-struct-def.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
73-union.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
74-multi-line-string.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
75-struct-union.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
76-pointer-arithmetic.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
77-pointer-assign.c mescc: scaffold: misc cleanups. 2017-12-03 23:03:09 +01:00
78-union-struct.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
79-int-array.c mescc: scaffold: misc cleanups. 2017-12-03 23:03:09 +01:00
80-setjmp.c doc: Release udpate. 2017-11-21 19:22:26 +01:00
81-qsort.c mlibc: Tinycc support: qsort. 2017-12-04 19:01:39 +01:00
82-define.c mescc: M4 support: scaffold/tests/82-define.c. 2017-12-04 23:19:32 +01:00
83-heterogenoous-init.c mescc: Support heterogeneous variable init. 2018-05-04 22:38:01 +02:00
84-struct-field-list.c mescc: Handle struct field lists. 2018-05-05 00:14:47 +02:00
85-sizeof.c mescc: Tinycc support: sizeof: Bugfix for c-array. 2018-05-12 11:25:35 +02:00
90-goto-var.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
91-goto-array.c mescc: Refactor variable declaration. 2018-05-05 12:30:06 +02:00
exit-42.i doc: Release udpate. 2017-11-21 19:22:26 +01:00
t.c mescc: Tinycc support: Function variables. 2018-05-11 18:53:54 +02:00