From 411f5527d41ba5c4f09b914b4fb4df0c6493f744 Mon Sep 17 00:00:00 2001
From: David Marcec <dmarcecguzman@gmail.com>
Date: Wed, 3 Jun 2020 16:33:38 +1000
Subject: [PATCH] Mark parameters as const

---
 src/video_core/engines/maxwell_3d.cpp      | 2 +-
 src/video_core/engines/maxwell_3d.h        | 3 +--
 src/video_core/macro/macro.cpp             | 2 +-
 src/video_core/macro/macro.h               | 4 ++--
 src/video_core/macro/macro_interpreter.cpp | 2 +-
 src/video_core/macro/macro_interpreter.h   | 2 +-
 src/video_core/macro/macro_jit_x64.cpp     | 2 +-
 src/video_core/macro/macro_jit_x64.h       | 5 +++--
 8 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index 0c0a7c1ed7..14ad402502 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/src/video_core/engines/maxwell_3d.cpp
@@ -115,7 +115,7 @@ void Maxwell3D::InitializeRegisterDefaults() {
     mme_inline[MAXWELL3D_REG_INDEX(index_array.count)] = true;
 }
 
-void Maxwell3D::CallMacroMethod(u32 method, std::vector<u32>& parameters) {
+void Maxwell3D::CallMacroMethod(u32 method, const std::vector<u32>& parameters) {
     // Reset the current macro.
     executing_macro = 0;
 
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 651f37b4d8..b827b112fc 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -1466,7 +1466,6 @@ private:
 
     /// Interpreter for the macro codes uploaded to the GPU.
     std::unique_ptr<MacroEngine> macro_engine;
-    // MacroInterpreter macro_interpreter;
 
     static constexpr u32 null_cb_data = 0xFFFFFFFF;
     struct {
@@ -1495,7 +1494,7 @@ private:
      * @param num_parameters Number of arguments
      * @param parameters Arguments to the method call
      */
-    void CallMacroMethod(u32 method, std::vector<u32>& parameters);
+    void CallMacroMethod(u32 method, const std::vector<u32>& parameters);
 
     /// Handles writes to the macro uploading register.
     void ProcessMacroUpload(u32 data);
diff --git a/src/video_core/macro/macro.cpp b/src/video_core/macro/macro.cpp
index d05a884793..89077a2d85 100644
--- a/src/video_core/macro/macro.cpp
+++ b/src/video_core/macro/macro.cpp
@@ -15,7 +15,7 @@ void MacroEngine::AddCode(u32 method, u32 data) {
     uploaded_macro_code[method].push_back(data);
 }
 
-void MacroEngine::Execute(u32 method, std::vector<u32>& parameters) {
+void MacroEngine::Execute(u32 method, const std::vector<u32>& parameters) {
     auto compiled_macro = macro_cache.find(method);
     if (compiled_macro != macro_cache.end()) {
         compiled_macro->second->Execute(parameters, method);
diff --git a/src/video_core/macro/macro.h b/src/video_core/macro/macro.h
index 49fc4d6bc2..b76ed891f1 100644
--- a/src/video_core/macro/macro.h
+++ b/src/video_core/macro/macro.h
@@ -102,7 +102,7 @@ public:
      * @param code The macro byte code to execute
      * @param parameters The parameters of the macro
      */
-    virtual void Execute(std::vector<u32>& parameters, u32 method) = 0;
+    virtual void Execute(const std::vector<u32>& parameters, u32 method) = 0;
 };
 
 class MacroEngine {
@@ -113,7 +113,7 @@ public:
     void AddCode(u32 method, u32 data);
 
     // Compiles the macro if its not in the cache, and executes the compiled macro
-    void Execute(u32 method, std::vector<u32>& parameters);
+    void Execute(u32 method, const std::vector<u32>& parameters);
 
 protected:
     virtual std::unique_ptr<CachedMacro> Compile(const std::vector<u32>& code) = 0;
diff --git a/src/video_core/macro/macro_interpreter.cpp b/src/video_core/macro/macro_interpreter.cpp
index e63296a21f..5edff27aad 100644
--- a/src/video_core/macro/macro_interpreter.cpp
+++ b/src/video_core/macro/macro_interpreter.cpp
@@ -21,7 +21,7 @@ MacroInterpreterImpl::MacroInterpreterImpl(Engines::Maxwell3D& maxwell3d,
                                            const std::vector<u32>& code)
     : maxwell3d(maxwell3d), code(code) {}
 
-void MacroInterpreterImpl::Execute(std::vector<u32>& parameters, u32 method) {
+void MacroInterpreterImpl::Execute(const std::vector<u32>& parameters, u32 method) {
     MICROPROFILE_SCOPE(MacroInterp);
     Reset();
 
diff --git a/src/video_core/macro/macro_interpreter.h b/src/video_core/macro/macro_interpreter.h
index fb923f7b9f..90217fc89f 100644
--- a/src/video_core/macro/macro_interpreter.h
+++ b/src/video_core/macro/macro_interpreter.h
@@ -29,7 +29,7 @@ private:
 class MacroInterpreterImpl : public CachedMacro {
 public:
     MacroInterpreterImpl(Engines::Maxwell3D& maxwell3d, const std::vector<u32>& code);
-    void Execute(std::vector<u32>& parameters, u32 method) override;
+    void Execute(const std::vector<u32>& parameters, u32 method) override;
 
 private:
     /// Resets the execution engine state, zeroing registers, etc.
diff --git a/src/video_core/macro/macro_jit_x64.cpp b/src/video_core/macro/macro_jit_x64.cpp
index 48501e582c..11c1cc3be8 100644
--- a/src/video_core/macro/macro_jit_x64.cpp
+++ b/src/video_core/macro/macro_jit_x64.cpp
@@ -47,7 +47,7 @@ MacroJITx64Impl::MacroJITx64Impl(Engines::Maxwell3D& maxwell3d, const std::vecto
 
 MacroJITx64Impl::~MacroJITx64Impl() = default;
 
-void MacroJITx64Impl::Execute(std::vector<u32>& parameters, u32 method) {
+void MacroJITx64Impl::Execute(const std::vector<u32>& parameters, u32 method) {
     MICROPROFILE_SCOPE(MacroJitExecute);
     ASSERT_OR_EXECUTE(program != nullptr, { return; });
     JITState state{};
diff --git a/src/video_core/macro/macro_jit_x64.h b/src/video_core/macro/macro_jit_x64.h
index 729ed77137..6152cb5013 100644
--- a/src/video_core/macro/macro_jit_x64.h
+++ b/src/video_core/macro/macro_jit_x64.h
@@ -13,6 +13,7 @@
 #include "video_core/macro/macro.h"
 
 namespace Tegra {
+
 namespace Engines {
 class Maxwell3D;
 }
@@ -36,7 +37,7 @@ public:
     MacroJITx64Impl(Engines::Maxwell3D& maxwell3d, const std::vector<u32>& code);
     ~MacroJITx64Impl();
 
-    void Execute(std::vector<u32>& parameters, u32 method) override;
+    void Execute(const std::vector<u32>& parameters, u32 method) override;
 
     void Compile_ALU(Macro::Opcode opcode);
     void Compile_AddImmediate(Macro::Opcode opcode);
@@ -66,7 +67,7 @@ private:
     struct JITState {
         Engines::Maxwell3D* maxwell3d{};
         std::array<u32, Macro::NUM_MACRO_REGISTERS> registers{};
-        u32* parameters{};
+        const u32* parameters{};
         u32 carry_flag{};
     };
     static_assert(offsetof(JITState, maxwell3d) == 0, "Maxwell3D is not at 0x0");