glasm: Implement more logical ops
This commit is contained in:
		@@ -93,7 +93,7 @@ void EmitShiftRightArithmetic64([[maybe_unused]] EmitContext& ctx,
 | 
			
		||||
 | 
			
		||||
void EmitBitwiseAnd32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
 | 
			
		||||
                      [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b) {
 | 
			
		||||
    throw NotImplementedException("GLASM instruction");
 | 
			
		||||
    ctx.Add("AND {},{},{};", inst, a, b);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EmitBitwiseOr32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
 | 
			
		||||
@@ -103,7 +103,7 @@ void EmitBitwiseOr32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Ins
 | 
			
		||||
 | 
			
		||||
void EmitBitwiseXor32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
 | 
			
		||||
                      [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b) {
 | 
			
		||||
    throw NotImplementedException("GLASM instruction");
 | 
			
		||||
    ctx.Add("XOR {},{},{};", inst, a, b);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EmitBitFieldInsert(EmitContext& ctx, IR::Inst& inst, std::string_view base,
 | 
			
		||||
@@ -136,7 +136,7 @@ void EmitBitCount32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst
 | 
			
		||||
 | 
			
		||||
void EmitBitwiseNot32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
 | 
			
		||||
                      [[maybe_unused]] std::string_view value) {
 | 
			
		||||
    throw NotImplementedException("GLASM instruction");
 | 
			
		||||
    ctx.Add("NOT {},{};", inst, value);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EmitFindSMsb32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
 | 
			
		||||
@@ -222,7 +222,7 @@ void EmitUGreaterThan([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::In
 | 
			
		||||
 | 
			
		||||
void EmitINotEqual([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
 | 
			
		||||
                   [[maybe_unused]] std::string_view lhs, [[maybe_unused]] std::string_view rhs) {
 | 
			
		||||
    throw NotImplementedException("GLASM instruction");
 | 
			
		||||
    ctx.Add("SNE.U {},{},{};", inst, lhs, rhs);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EmitSGreaterThanEqual([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ std::string ImmValue(const IR::Value& value) {
 | 
			
		||||
    case IR::Type::F32:
 | 
			
		||||
        return fmt::format("{}", value.F32());
 | 
			
		||||
    default:
 | 
			
		||||
        throw NotImplementedException("Immediate type", value.Type());
 | 
			
		||||
        throw NotImplementedException("Immediate type {}", value.Type());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
} // Anonymous namespace
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user