forked from eden-emu/eden
		
	glasm: Add Void type to GLASM values
This commit is contained in:
		
							parent
							
								
									3764750339
								
							
						
					
					
						commit
						31d402ee74
					
				
					 3 changed files with 15 additions and 0 deletions
				
			
		|  | @ -54,6 +54,7 @@ public: | |||
|         } | ||||
|         switch (value.type) { | ||||
|         case Type::Register: | ||||
|         case Type::Void: | ||||
|             break; | ||||
|         case Type::U32: | ||||
|             ctx.Add("MOV.U {}.x,{};", reg, value.imm_u32); | ||||
|  |  | |||
|  | @ -57,6 +57,9 @@ void RegAlloc::FreeReg(Register reg) { | |||
| Value RegAlloc::MakeImm(const IR::Value& value) { | ||||
|     Value ret; | ||||
|     switch (value.Type()) { | ||||
|     case IR::Type::Void: | ||||
|         ret.type = Type::Void; | ||||
|         break; | ||||
|     case IR::Type::U1: | ||||
|         ret.type = Type::U32; | ||||
|         ret.imm_u32 = value.U1() ? 0xffffffff : 0; | ||||
|  |  | |||
|  | @ -23,6 +23,7 @@ namespace Shader::Backend::GLASM { | |||
| class EmitContext; | ||||
| 
 | ||||
| enum class Type : u32 { | ||||
|     Void, | ||||
|     Register, | ||||
|     U32, | ||||
|     S32, | ||||
|  | @ -65,6 +66,8 @@ struct Value { | |||
|             return false; | ||||
|         } | ||||
|         switch (type) { | ||||
|         case Type::Void: | ||||
|             return true; | ||||
|         case Type::Register: | ||||
|             return id == rhs.id; | ||||
|         case Type::U32: | ||||
|  | @ -218,6 +221,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU32> { | |||
|     template <typename FormatContext> | ||||
|     auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) { | ||||
|         switch (value.type) { | ||||
|         case Shader::Backend::GLASM::Type::Void: | ||||
|             break; | ||||
|         case Shader::Backend::GLASM::Type::Register: | ||||
|             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); | ||||
|         case Shader::Backend::GLASM::Type::U32: | ||||
|  | @ -242,6 +247,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS32> { | |||
|     template <typename FormatContext> | ||||
|     auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) { | ||||
|         switch (value.type) { | ||||
|         case Shader::Backend::GLASM::Type::Void: | ||||
|             break; | ||||
|         case Shader::Backend::GLASM::Type::Register: | ||||
|             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); | ||||
|         case Shader::Backend::GLASM::Type::U32: | ||||
|  | @ -266,6 +273,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF32> { | |||
|     template <typename FormatContext> | ||||
|     auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) { | ||||
|         switch (value.type) { | ||||
|         case Shader::Backend::GLASM::Type::Void: | ||||
|             break; | ||||
|         case Shader::Backend::GLASM::Type::Register: | ||||
|             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); | ||||
|         case Shader::Backend::GLASM::Type::U32: | ||||
|  | @ -290,6 +299,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF64> { | |||
|     template <typename FormatContext> | ||||
|     auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) { | ||||
|         switch (value.type) { | ||||
|         case Shader::Backend::GLASM::Type::Void: | ||||
|             break; | ||||
|         case Shader::Backend::GLASM::Type::Register: | ||||
|             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); | ||||
|         case Shader::Backend::GLASM::Type::U32: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 ReinUsesLisp
						ReinUsesLisp