aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-01-28 11:47:52 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-01-28 11:47:52 -0800
commit7fd3f046471f28722998764f1db644e2e05882fc (patch)
tree5556dae9f144d916a1f29c947d26cfb698d19179
parent9f89d3bfe264a37425cd23167f96f88ce024f988 (diff)
preparations for legalizing zext
-rw-r--r--src/analyzer.js4
-rw-r--r--tests/cases/legalizer_ta2.ll3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/analyzer.js b/src/analyzer.js
index 53ccbe7e..a2ddc7d9 100644
--- a/src/analyzer.js
+++ b/src/analyzer.js
@@ -276,8 +276,8 @@ function analyzer(data, sidePass) {
targetBits = sourceBits;
break;
}
- case 'trunc': {
- assert(value.param2.intertype == 'type', 'TODO: unfolding');
+ case 'trunc': case 'zext': {
+ assert(value.param2.intertype == 'type' || value.param2.intertype == 'value', 'TODO: unfolding');
targetBits = getBits(value.param2.ident);
break;
}
diff --git a/tests/cases/legalizer_ta2.ll b/tests/cases/legalizer_ta2.ll
index 8622b720..4043d8d2 100644
--- a/tests/cases/legalizer_ta2.ll
+++ b/tests/cases/legalizer_ta2.ll
@@ -64,7 +64,8 @@ entry:
call i32 (i8*)* @puts(i8* %buffer)
; zext
- %big = zext i32 6382179 to i104
+ %pre32 = zext i32 6382179 to i32
+ %big = zext i32 %pre32 to i104
store i104 %big, i104* %bundled, align 4
call i32 (i8*)* @puts(i8* %buffer)