Commit 7621a90da8e4c8367cb44df25dfcb4e89986fed0

Authored by blueswir1
1 parent 6676f424

Fix udiv and sdiv on Sparc64 (Vince Weaver)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5085 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 2 additions and 2 deletions
target-sparc/op_helper.c
@@ -2288,7 +2288,7 @@ target_ulong helper_udiv(target_ulong a, target_ulong b) @@ -2288,7 +2288,7 @@ target_ulong helper_udiv(target_ulong a, target_ulong b)
2288 uint64_t x0; 2288 uint64_t x0;
2289 uint32_t x1; 2289 uint32_t x1;
2290 2290
2291 - x0 = a | ((uint64_t) (env->y) << 32); 2291 + x0 = (a & 0xffffffff) | ((int64_t) (env->y) << 32);
2292 x1 = b; 2292 x1 = b;
2293 2293
2294 if (x1 == 0) { 2294 if (x1 == 0) {
@@ -2310,7 +2310,7 @@ target_ulong helper_sdiv(target_ulong a, target_ulong b) @@ -2310,7 +2310,7 @@ target_ulong helper_sdiv(target_ulong a, target_ulong b)
2310 int64_t x0; 2310 int64_t x0;
2311 int32_t x1; 2311 int32_t x1;
2312 2312
2313 - x0 = a | ((int64_t) (env->y) << 32); 2313 + x0 = (a & 0xffffffff) | ((int64_t) (env->y) << 32);
2314 x1 = b; 2314 x1 = b;
2315 2315
2316 if (x1 == 0) { 2316 if (x1 == 0) {