diff options
author | Michael Forney <mforney@mforney.org> | 2019-04-14 12:28:14 -0700 |
---|---|---|
committer | Michael Forney <mforney@mforney.org> | 2019-04-14 12:42:12 -0700 |
commit | ea4a14c7a4943498f49c26824d68a8d4776c5ddc (patch) | |
tree | 27c7b45778132a2badbecf9b3dc0b4d9ada4d44e /tests | |
parent | c662950252c041e01b64b829921cb5e79a2e2bb6 (diff) | |
download | cproc-ea4a14c7a4943498f49c26824d68a8d4776c5ddc.tar.xz |
Initial support for loading/storing bit-fields
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bitfield-load-signed.c | 7 | ||||
-rw-r--r-- | tests/bitfield-load-signed.qbe | 14 | ||||
-rw-r--r-- | tests/bitfield-load-unsigned.c | 7 | ||||
-rw-r--r-- | tests/bitfield-load-unsigned.qbe | 14 |
4 files changed, 42 insertions, 0 deletions
diff --git a/tests/bitfield-load-signed.c b/tests/bitfield-load-signed.c new file mode 100644 index 0000000..837ad24 --- /dev/null +++ b/tests/bitfield-load-signed.c @@ -0,0 +1,7 @@ +struct { + signed : 4, x : 15, : 13; +} s; + +void f(void) { + s.x; +} diff --git a/tests/bitfield-load-signed.qbe b/tests/bitfield-load-signed.qbe new file mode 100644 index 0000000..bc3f457 --- /dev/null +++ b/tests/bitfield-load-signed.qbe @@ -0,0 +1,14 @@ +export +function $f() { +@start.1 +@body.2 + %.1 =l copy $s + %.2 =l mul 0, 1 + %.3 =l add %.1, %.2 + %.4 =l copy %.3 + %.5 =w loadsw %.4 + %.6 =w shl %.5, 13 + %.7 =w sar %.6, 17 + ret +} +export data $s = align 4 { z 4 } diff --git a/tests/bitfield-load-unsigned.c b/tests/bitfield-load-unsigned.c new file mode 100644 index 0000000..5a9e5fa --- /dev/null +++ b/tests/bitfield-load-unsigned.c @@ -0,0 +1,7 @@ +struct { + unsigned : 4, x : 15, : 13; +} s; + +void f(void) { + s.x; +} diff --git a/tests/bitfield-load-unsigned.qbe b/tests/bitfield-load-unsigned.qbe new file mode 100644 index 0000000..c4ea94b --- /dev/null +++ b/tests/bitfield-load-unsigned.qbe @@ -0,0 +1,14 @@ +export +function $f() { +@start.1 +@body.2 + %.1 =l copy $s + %.2 =l mul 0, 1 + %.3 =l add %.1, %.2 + %.4 =l copy %.3 + %.5 =w loaduw %.4 + %.6 =w shl %.5, 13 + %.7 =w shr %.6, 17 + ret +} +export data $s = align 4 { z 4 } |