From a948c20151197996b3668c49df123b40d743b3bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= <nerv@dawncrow.de> Date: Thu, 8 Mar 2012 22:28:26 +0100 Subject: [PATCH] winedbg: Use copy of be_i386_fetch_float for be_arm_fetch_float (except of long double). --- programs/winedbg/be_arm.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/programs/winedbg/be_arm.c b/programs/winedbg/be_arm.c index 0bd56018665..c39043cbda5 100644 --- a/programs/winedbg/be_arm.c +++ b/programs/winedbg/be_arm.c @@ -237,8 +237,20 @@ static int be_arm_fetch_integer(const struct dbg_lvalue* lvalue, unsigned size, static int be_arm_fetch_float(const struct dbg_lvalue* lvalue, unsigned size, long double* ret) { - dbg_printf("be_arm_fetch_float: not done\n"); - return FALSE; + char tmp[sizeof(long double)]; + + /* FIXME: this assumes that debuggee and debugger use the same + * representation for reals + */ + if (!memory_read_value(lvalue, size, tmp)) return FALSE; + + switch (size) + { + case sizeof(float): *ret = *(float*)tmp; break; + case sizeof(double): *ret = *(double*)tmp; break; + default: return FALSE; + } + return TRUE; } struct backend_cpu be_arm = -- GitLab