glasm: Implement int64 add and subtract

This commit is contained in:
ReinUsesLisp 2021-05-23 20:16:09 -03:00 committed by ameerj
parent 7fdf0d7d33
commit 0794273870
2 changed files with 6 additions and 8 deletions

View File

@ -299,9 +299,9 @@ void EmitFPIsNan16(EmitContext& ctx, Register value);
void EmitFPIsNan32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value); void EmitFPIsNan32(EmitContext& ctx, IR::Inst& inst, ScalarF32 value);
void EmitFPIsNan64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value); void EmitFPIsNan64(EmitContext& ctx, IR::Inst& inst, ScalarF64 value);
void EmitIAdd32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b); void EmitIAdd32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b);
void EmitIAdd64(EmitContext& ctx, Register a, Register b); void EmitIAdd64(EmitContext& ctx, IR::Inst& inst, Register a, Register b);
void EmitISub32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b); void EmitISub32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b);
void EmitISub64(EmitContext& ctx, Register a, Register b); void EmitISub64(EmitContext& ctx, IR::Inst& inst, Register a, Register b);
void EmitIMul32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b); void EmitIMul32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b);
void EmitINeg32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value); void EmitINeg32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value);
void EmitINeg64(EmitContext& ctx, IR::Inst& inst, Register value); void EmitINeg64(EmitContext& ctx, IR::Inst& inst, Register value);

View File

@ -37,18 +37,16 @@ void EmitIAdd32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b) {
} }
} }
void EmitIAdd64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] Register a, void EmitIAdd64(EmitContext& ctx, IR::Inst& inst, Register a, Register b) {
[[maybe_unused]] Register b) { ctx.LongAdd("ADD.S64 {}.x,{}.x,{}.x;", inst, a, b);
throw NotImplementedException("GLASM instruction");
} }
void EmitISub32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b) { void EmitISub32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b) {
ctx.Add("SUB.S {}.x,{},{};", inst, a, b); ctx.Add("SUB.S {}.x,{},{};", inst, a, b);
} }
void EmitISub64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] Register a, void EmitISub64(EmitContext& ctx, IR::Inst& inst, Register a, Register b) {
[[maybe_unused]] Register b) { ctx.LongAdd("SUB.S64 {}.x,{}.x,{}.x;", inst, a, b);
throw NotImplementedException("GLASM instruction");
} }
void EmitIMul32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b) { void EmitIMul32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b) {