glasm: Implement IAbs64 and INeg64 on GLASM
This commit is contained in:
		| @@ -306,9 +306,9 @@ void EmitISub32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b); | ||||
| void EmitISub64(EmitContext& ctx, Register a, Register b); | ||||
| void EmitIMul32(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b); | ||||
| void EmitINeg32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value); | ||||
| void EmitINeg64(EmitContext& ctx, Register value); | ||||
| void EmitINeg64(EmitContext& ctx, IR::Inst& inst, Register value); | ||||
| void EmitIAbs32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value); | ||||
| void EmitIAbs64(EmitContext& ctx, Register value); | ||||
| void EmitIAbs64(EmitContext& ctx, IR::Inst& inst, Register value); | ||||
| void EmitShiftLeftLogical32(EmitContext& ctx, IR::Inst& inst, ScalarU32 base, ScalarU32 shift); | ||||
| void EmitShiftLeftLogical64(EmitContext& ctx, Register base, Register shift); | ||||
| void EmitShiftRightLogical32(EmitContext& ctx, IR::Inst& inst, ScalarU32 base, ScalarU32 shift); | ||||
|   | ||||
| @@ -34,16 +34,16 @@ void EmitINeg32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value) { | ||||
|     ctx.Add("MOV.S {},-{};", inst, value); | ||||
| } | ||||
|  | ||||
| void EmitINeg64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] Register value) { | ||||
|     throw NotImplementedException("GLASM instruction"); | ||||
| void EmitINeg64(EmitContext& ctx, IR::Inst& inst, Register value) { | ||||
|     ctx.LongAdd("MOV.S64 {},-{};", inst, value); | ||||
| } | ||||
|  | ||||
| void EmitIAbs32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value) { | ||||
|     ctx.Add("ABS.S {},{};", inst, value); | ||||
| } | ||||
|  | ||||
| void EmitIAbs64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] Register value) { | ||||
|     throw NotImplementedException("GLASM instruction"); | ||||
| void EmitIAbs64(EmitContext& ctx, IR::Inst& inst, Register value) { | ||||
|     ctx.LongAdd("MOV.S64 {},|{}|;", inst, value); | ||||
| } | ||||
|  | ||||
| void EmitShiftLeftLogical32(EmitContext& ctx, IR::Inst& inst, ScalarU32 base, ScalarU32 shift) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user