authorgravatar for 19855629+SuperAuguste@users.noreply.github.comAuguste Rame <19855629+SuperAuguste@users.noreply.github.com> 2023-04-07 01:27:32-04:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-04-07 14:59:22+03:00
logdac62424f9dc1b775b7b47f954bea9f0326d81a1
treec11d9e09680213f070c6d09b122508a1cd7ac174
parent13aa7871b274fd22c7fdf277174a43d09788bd27

Make self-hosted wasm @returnAddress return 0


1 files changed, 6 insertions(+), 1 deletions(-)

src/arch/wasm/CodeGen.zig+6-1
...@@ -1929,10 +1929,11 @@ fn genInst(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -1929,10 +1929,11 @@ fn genInst(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
19291929
1930 .memcpy => func.airMemcpy(inst),1930 .memcpy => func.airMemcpy(inst),
19311931
1932 .ret_addr => func.airRetAddr(inst),
1933
1932 .mul_sat,1934 .mul_sat,
1933 .mod,1935 .mod,
1934 .assembly,1936 .assembly,
1935 .ret_addr,
1936 .frame_addr,1937 .frame_addr,
1937 .bit_reverse,1938 .bit_reverse,
1938 .is_err_ptr,1939 .is_err_ptr,
...@@ -4967,6 +4968,10 @@ fn airMemcpy(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -4967,6 +4968,10 @@ fn airMemcpy(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
4967 func.finishAir(inst, .none, &.{ pl_op.operand, bin_op.lhs, bin_op.rhs });4968 func.finishAir(inst, .none, &.{ pl_op.operand, bin_op.lhs, bin_op.rhs });
4968}4969}
49694970
4971fn airRetAddr(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
4972 func.finishAir(inst, .{ .imm32 = 0 }, &.{});
4973}
4974
4970fn airPopcount(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {4975fn airPopcount(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
4971 const ty_op = func.air.instructions.items(.data)[inst].ty_op;4976 const ty_op = func.air.instructions.items(.data)[inst].ty_op;
4972 if (func.liveness.isUnused(inst)) return func.finishAir(inst, .none, &.{ty_op.operand});4977 if (func.liveness.isUnused(inst)) return func.finishAir(inst, .none, &.{ty_op.operand});