From 01262f752d128fb5396a24400faaddcc45453692 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Leon=20Wei=C3=9F?= <leon.weiss@rub.de>
Date: Mon, 26 Jun 2023 14:22:11 +0200
Subject: [PATCH] Handle index register of a memory operation being the
 pseudo-register RIZ/EIZ

This should not adversely affect the rest of the logic as it is only ever entered in cases in which we would have asserted false before

Enables us to instrument x509
---
 irdb-libs/libIRDB-core/src/operand_csx86.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/irdb-libs/libIRDB-core/src/operand_csx86.cpp b/irdb-libs/libIRDB-core/src/operand_csx86.cpp
index f7c421607..a6dd22caa 100644
--- a/irdb-libs/libIRDB-core/src/operand_csx86.cpp
+++ b/irdb-libs/libIRDB-core/src/operand_csx86.cpp
@@ -176,6 +176,9 @@ static uint32_t to_reg_number(const x86_reg &reg)
 		case X86_REG_R15D:
 		case X86_REG_R15W:
 			return 15;
+        case X86_REG_RIZ:
+        case X86_REG_EIZ:
+            return -1; // STARS_x86_R_none, RIZ/EIZ is a pseudo-register having constant value of 0
 		default: break;
 	}
 	assert(0);
-- 
GitLab