sim: Fix pseudo instruction parameter loading

With the new ABI API the position argument of the pseudo inst ABI was
not updated correctly. The position needs to be incremented (at least)
once per argument.

Note: `position++` must be outside of the function call because of a GCC
build/X86/sim/pseudo_inst.hh:80:48: error: cannot bind non-const lvalue
reference of type 'int&' to an rvalue of type 'PseudoInstABI::Position
{aka int}'
         return TheISA::getArgument(tc, position++, sizeof(uint64_t),

Change-Id: Idd890a587a565b8ad819f094147a02dc1519e997
Signed-off-by: Jason Lowe-Power <>
Reviewed-by: Gabe Black <>
Maintainer: Gabe Black <>
Tested-by: kokoro <>
diff --git a/src/sim/pseudo_inst.hh b/src/sim/pseudo_inst.hh
index 44227af..e2d0c61 100644
--- a/src/sim/pseudo_inst.hh
+++ b/src/sim/pseudo_inst.hh
@@ -77,7 +77,10 @@
     static uint64_t
     get(ThreadContext *tc, PseudoInstABI::Position &position)
-        return TheISA::getArgument(tc, position, sizeof(uint64_t), false);
+        uint64_t result = TheISA::getArgument(tc, position, sizeof(uint64_t),
+                                              false);
+        position++;
+        return result;