From c41b5a3492f9db79fd39a989523db2accc6ff745 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 13 Aug 2018 11:10:34 -0400 Subject: [PATCH] x64/reg_alloc: Use type alias for array returned by GetArgumentInfo() This way if the number ever changes, we don't need to change the type in other places. --- src/backend_x64/emit_x64_aes.cpp | 2 +- src/backend_x64/reg_alloc.cpp | 4 ++-- src/backend_x64/reg_alloc.h | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/backend_x64/emit_x64_aes.cpp b/src/backend_x64/emit_x64_aes.cpp index f1675271..669e923d 100644 --- a/src/backend_x64/emit_x64_aes.cpp +++ b/src/backend_x64/emit_x64_aes.cpp @@ -19,7 +19,7 @@ namespace AES = Common::Crypto::AES; using AESFn = void(AES::State&, const AES::State&); -static void EmitAESFunction(std::array args, EmitContext& ctx, BlockOfCode& code, +static void EmitAESFunction(RegAlloc::ArgumentInfo args, EmitContext& ctx, BlockOfCode& code, IR::Inst* inst, AESFn fn) { constexpr u32 stack_space = static_cast(sizeof(AES::State)) * 2; const Xbyak::Xmm input = ctx.reg_alloc.UseXmm(args[0]); diff --git a/src/backend_x64/reg_alloc.cpp b/src/backend_x64/reg_alloc.cpp index 3e8ae2c8..78810998 100644 --- a/src/backend_x64/reg_alloc.cpp +++ b/src/backend_x64/reg_alloc.cpp @@ -208,8 +208,8 @@ bool Argument::IsInMemory() const { return HostLocIsSpill(*reg_alloc.ValueLocation(value.GetInst())); } -std::array RegAlloc::GetArgumentInfo(IR::Inst* inst) { - std::array ret = { Argument{*this}, Argument{*this}, Argument{*this} }; +RegAlloc::ArgumentInfo RegAlloc::GetArgumentInfo(IR::Inst* inst) { + ArgumentInfo ret = { Argument{*this}, Argument{*this}, Argument{*this} }; for (size_t i = 0; i < inst->NumArgs(); i++) { const IR::Value& arg = inst->GetArg(i); ret[i].value = arg; diff --git a/src/backend_x64/reg_alloc.h b/src/backend_x64/reg_alloc.h index 028e8510..ac352167 100644 --- a/src/backend_x64/reg_alloc.h +++ b/src/backend_x64/reg_alloc.h @@ -91,10 +91,12 @@ private: class RegAlloc final { public: + using ArgumentInfo = std::array; + explicit RegAlloc(BlockOfCode& code, size_t num_spills, std::function spill_to_addr) : hostloc_info(NonSpillHostLocCount + num_spills), code(code), spill_to_addr(std::move(spill_to_addr)) {} - std::array GetArgumentInfo(IR::Inst* inst); + ArgumentInfo GetArgumentInfo(IR::Inst* inst); Xbyak::Reg64 UseGpr(Argument& arg); Xbyak::Xmm UseXmm(Argument& arg);