From 294b03ddde39c997a5635b61f9173717d317fb04 Mon Sep 17 00:00:00 2001 From: Themis Demetriades Date: Wed, 5 Jun 2024 22:21:32 +0100 Subject: [PATCH] Added ability to write to zero register (discard) w/ S --- src/execute.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/execute.c b/src/execute.c index 837dd0c..ef5763b 100644 --- a/src/execute.c +++ b/src/execute.c @@ -74,7 +74,9 @@ static dword readRegister(Machine *state, a64inst_regSpecifier reg, a64inst_regT // and truncating the value being written when it can't fit in the specified register static void writeRegister(Machine *state, a64inst_regSpecifier reg, a64inst_regType regType, dword value) { assert(reg <= REGISTER_COUNT); - state->registers[reg] = truncateValue(value, regType); + if (reg != ZERO_REGISTER) { + state->registers[reg] = truncateValue(value, regType); + } } // Returns the position of the MSB of the given register type