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