From 5f40667d91aeacfbe7b0f394dcac6ab78e9e2cf4 Mon Sep 17 00:00:00 2001 From: Bet4 <0xbet4@gmail.com> Date: Mon, 26 Apr 2021 00:31:29 +0800 Subject: [PATCH] Support querying architecture mode besides arm (#1389) --- qemu/target/arm/unicorn_arm.c | 2 +- uc.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/qemu/target/arm/unicorn_arm.c b/qemu/target/arm/unicorn_arm.c index 9a5a698d..e582691f 100644 --- a/qemu/target/arm/unicorn_arm.c +++ b/qemu/target/arm/unicorn_arm.c @@ -456,7 +456,7 @@ static uc_err arm_query(struct uc_struct *uc, uc_query_type type, size_t *result // zero out ARM/THUMB mode mode = uc->mode & ~(UC_MODE_ARM | UC_MODE_THUMB); // THUMB mode or ARM MOde - mode += ((ARM_CPU(mycpu)->env.thumb != 0)? UC_MODE_THUMB : UC_MODE_ARM); + mode |= ((ARM_CPU(mycpu)->env.thumb != 0)? UC_MODE_THUMB : UC_MODE_ARM); *result = mode; return UC_ERR_OK; default: diff --git a/uc.c b/uc.c index 3e24674c..bc50b9ba 100644 --- a/uc.c +++ b/uc.c @@ -1444,7 +1444,8 @@ uc_err uc_query(uc_engine *uc, uc_query_type type, size_t *result) return uc->query(uc, type, result); } #endif - return UC_ERR_ARG; + *result = uc->mode; + break; case UC_QUERY_TIMEOUT: *result = uc->timed_out;