From 0b8ac58335522c8428d9de99280f2d8d2ea93037 Mon Sep 17 00:00:00 2001
From: clc5q <clc5q@git.zephyr-software.com>
Date: Mon, 18 Jan 2016 21:12:17 +0000
Subject: [PATCH] For STARS64 working on 32-bit binaries, read 32-bit code
 addresses from data segments rather than 64-bit code addresses.

Former-commit-id: 0ffae69c7988fd189f37a004d0b52c4f1593f1ce
---
 src/interfaces/idapro/STARSIDAProgram.cpp | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/interfaces/idapro/STARSIDAProgram.cpp b/src/interfaces/idapro/STARSIDAProgram.cpp
index 25085b2f..2b52cc19 100644
--- a/src/interfaces/idapro/STARSIDAProgram.cpp
+++ b/src/interfaces/idapro/STARSIDAProgram.cpp
@@ -291,11 +291,12 @@ void STARS_IDA_Program_t::InitStaticDataTable(SMPProgram *CurrProg) {
 								}
 							}
 						}
-#ifdef __EA64__
-						uint64_t DataValue = get_qword(TempAddr);
-#else
-						uint32_t DataValue = get_long(TempAddr);
-#endif
+						STARS_ea_t DataValue;
+						if (4 < global_STARS_program->GetSTARS_ISA_Bytewidth())
+							DataValue = (STARS_ea_t) ::get_qword(TempAddr);
+						else
+							DataValue = (STARS_ea_t) ::get_long(TempAddr);
+
 						if (DataValue != 0) {
 							// Is this a code address?
 							STARS_ea_t PossibleCodeAddr = (STARS_ea_t) DataValue;
-- 
GitLab