From b2d0ca83fb363496554688b6a5d3ddd892440ce9 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Wed, 15 May 2019 15:17:36 +0300 Subject: [PATCH] LLVM DSL: simplify value_t template for array --- rpcs3/Emu/CPU/CPUTranslator.h | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/rpcs3/Emu/CPU/CPUTranslator.h b/rpcs3/Emu/CPU/CPUTranslator.h index 493048893a..38b5aad48a 100644 --- a/rpcs3/Emu/CPU/CPUTranslator.h +++ b/rpcs3/Emu/CPU/CPUTranslator.h @@ -348,32 +348,13 @@ struct llvm_value_t : llvm_value_t } }; -template -struct llvm_value_t : llvm_value_t -{ - using type = T[0][N]; - using base = llvm_value_t; - using base::base; - - static constexpr bool is_int = false; - static constexpr bool is_sint = false; - static constexpr bool is_uint = false; - static constexpr bool is_float = false; - static constexpr uint is_array = N; - static constexpr uint is_vector = false; - static constexpr uint is_pointer = false; - - static llvm::Type* get_type(llvm::LLVMContext& context) - { - return llvm::ArrayType::get(llvm_value_t::get_type(context), N); - } -}; - +// u32[4][123] : array of 123 u32[4] vectors +// u32[0][123] : array of 123 u32 scalars template -struct llvm_value_t : llvm_value_t +struct llvm_value_t : llvm_value_t> { using type = T[V][N]; - using base = llvm_value_t; + using base = llvm_value_t>; using base::base; static constexpr bool is_int = false; @@ -386,7 +367,7 @@ struct llvm_value_t : llvm_value_t static llvm::Type* get_type(llvm::LLVMContext& context) { - return llvm::ArrayType::get(llvm_value_t::get_type(context), N); + return llvm::ArrayType::get(base::get_type(context), N); } };