]> git.proxmox.com Git - mirror_qemu.git/commitdiff
fixed zero shifts (64 bit case)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 22 May 2008 14:39:25 +0000 (14:39 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 22 May 2008 14:39:25 +0000 (14:39 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4527 c046a42c-6fe2-441c-8c8c-71466251a162

tcg/tcg.c

index c5b659438888999dbf713bdac47d5be8e7fc80f2..1ccde198aec8be5f5a6c9b57e80d6bd166a76255 100644 (file)
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -622,9 +622,10 @@ void tcg_gen_call(TCGContext *s, TCGv func, unsigned int flags,
 void tcg_gen_shifti_i64(TCGv ret, TCGv arg1, 
                         int c, int right, int arith)
 {
-    if (c == 0)
-        return;
-    if (c >= 32) {
+    if (c == 0) {
+        tcg_gen_mov_i32(ret, arg1);
+        tcg_gen_mov_i32(TCGV_HIGH(ret), TCGV_HIGH(arg1));
+    } else if (c >= 32) {
         c -= 32;
         if (right) {
             if (arith) {