projects
/
sdk
/
emulator
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9a931b9
)
target-alpha: Fix cvtlq.
author
Richard Henderson
<rth@twiddle.net>
Mon, 14 Dec 2009 01:48:55 +0000
(17:48 -0800)
committer
Aurelien Jarno
<aurelien@aurel32.net>
Thu, 17 Dec 2009 17:12:04 +0000
(18:12 +0100)
We were missing the 0xc0000000 mask, leading to incorrect results.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-alpha/op_helper.c
patch
|
blob
|
history
diff --git
a/target-alpha/op_helper.c
b/target-alpha/op_helper.c
index
8eba5ec
..
ff120ad
100644
(file)
--- a/
target-alpha/op_helper.c
+++ b/
target-alpha/op_helper.c
@@
-954,7
+954,9
@@
uint64_t helper_cvtqg (uint64_t a)
uint64_t helper_cvtlq (uint64_t a)
{
- return (int64_t)((int32_t)((a >> 32) | ((a >> 29) & 0x3FFFFFFF)));
+ int32_t lo = a >> 29;
+ int32_t hi = a >> 32;
+ return (lo & 0x3FFFFFFF) | (hi & 0xc0000000);
}
static inline uint64_t __helper_cvtql(uint64_t a, int s, int v)