feat: architecture helpers to set gp registers

Added functions to 'aarch64' and 'fake' architectures to safely change
values of general purpose registers within "arch_regs" structure.

Change-Id: I44342cec9b24d118148ee1612f7645cddbd3b14a
Signed-off-by: J-Alves <joao.alves@arm.com>
diff --git a/inc/hf/arch/cpu.h b/inc/hf/arch/cpu.h
index 0400133..135b222 100644
--- a/inc/hf/arch/cpu.h
+++ b/inc/hf/arch/cpu.h
@@ -35,6 +35,18 @@
 void arch_regs_set_pc_arg(struct arch_regs *r, ipaddr_t pc, uintreg_t arg);
 
 /**
+ * Verifies the `gp_reg_num` complies with the number of registers available in
+ * the architecture.
+ */
+bool arch_regs_reg_num_valid(const uint32_t gp_reg_num);
+
+/**
+ * Sets the value of a general purpose register.
+ */
+void arch_regs_set_gp_reg(struct arch_regs *r, uintreg_t value,
+			  const uint32_t gp_reg_num);
+
+/**
  * Updates the register holding the return value of a function.
  *
  * This function must only be called on an arch_regs that is known not be in use