aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-04-08 13:41:49 -0700
committerGitHub <noreply@github.com>2021-04-08 13:41:49 -0700
commit9f744f19e7036df9a410f780f3394f6669b8079e (patch)
tree055ef5f9727b51bde13f86805c67b3a4608b8c68 /src/codegen.zig
parentd7a89f98765381b4be2ce7626addad07ecfa7208 (diff)
parent6dc35efe4958a0569c4d8576bca84d62264b1d1d (diff)
downloadzig-9f744f19e7036df9a410f780f3394f6669b8079e.tar.gz
zig-9f744f19e7036df9a410f780f3394f6669b8079e.zip
Merge pull request #8464 from gracefuu/grace/wasm-ops
stage2 wasm: Add division and bitwise/boolean ops &, |, ^, and, or
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 220a8fa374..c78a7d243d 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -855,6 +855,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type {
.not => return self.genNot(inst.castTag(.not).?),
.mul => return self.genMul(inst.castTag(.mul).?),
.mulwrap => return self.genMulWrap(inst.castTag(.mulwrap).?),
+ .div => return self.genDiv(inst.castTag(.div).?),
.ptrtoint => return self.genPtrToInt(inst.castTag(.ptrtoint).?),
.ref => return self.genRef(inst.castTag(.ref).?),
.ret => return self.genRet(inst.castTag(.ret).?),
@@ -1092,6 +1093,15 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type {
}
}
+ fn genDiv(self: *Self, inst: *ir.Inst.BinOp) !MCValue {
+ // No side effects, so if it's unreferenced, do nothing.
+ if (inst.base.isUnused())
+ return MCValue.dead;
+ switch (arch) {
+ else => return self.fail(inst.base.src, "TODO implement div for {}", .{self.target.cpu.arch}),
+ }
+ }
+
fn genBitAnd(self: *Self, inst: *ir.Inst.BinOp) !MCValue {
// No side effects, so if it's unreferenced, do nothing.
if (inst.base.isUnused())