Commit bb3911a609084dc1c0c72fc25884ef712066bec9

Authored by bellard
1 parent 4e3b1ea1

Sparc64 add/sub flag bugs fixed (Blue Swirl)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1579 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 4 additions and 4 deletions
target-sparc/op.c
@@ -379,7 +379,7 @@ void OPPROTO op_add_T1_T0_cc(void) @@ -379,7 +379,7 @@ void OPPROTO op_add_T1_T0_cc(void)
379 env->psr |= PSR_ZERO; 379 env->psr |= PSR_ZERO;
380 if ((int32_t) T0 < 0) 380 if ((int32_t) T0 < 0)
381 env->psr |= PSR_NEG; 381 env->psr |= PSR_NEG;
382 - if ((src1 & 0xffffffff) < (T1 & 0xffffffff)) 382 + if ((T0 & 0xffffffff) < (src1 & 0xffffffff))
383 env->psr |= PSR_CARRY; 383 env->psr |= PSR_CARRY;
384 if ((((src1 & 0xffffffff) ^ (T1 & 0xffffffff) ^ -1) & 384 if ((((src1 & 0xffffffff) ^ (T1 & 0xffffffff) ^ -1) &
385 ((src1 & 0xffffffff) ^ (T0 & 0xffffffff))) & (1 << 31)) 385 ((src1 & 0xffffffff) ^ (T0 & 0xffffffff))) & (1 << 31))
@@ -424,7 +424,7 @@ void OPPROTO op_addx_T1_T0_cc(void) @@ -424,7 +424,7 @@ void OPPROTO op_addx_T1_T0_cc(void)
424 env->psr |= PSR_ZERO; 424 env->psr |= PSR_ZERO;
425 if ((int32_t) T0 < 0) 425 if ((int32_t) T0 < 0)
426 env->psr |= PSR_NEG; 426 env->psr |= PSR_NEG;
427 - if ((src1 & 0xffffffff) < (T1 & 0xffffffff)) 427 + if ((T0 & 0xffffffff) < (src1 & 0xffffffff))
428 env->psr |= PSR_CARRY; 428 env->psr |= PSR_CARRY;
429 if ((((src1 & 0xffffffff) ^ (T1 & 0xffffffff) ^ -1) & 429 if ((((src1 & 0xffffffff) ^ (T1 & 0xffffffff) ^ -1) &
430 ((src1 & 0xffffffff) ^ (T0 & 0xffffffff))) & (1 << 31)) 430 ((src1 & 0xffffffff) ^ (T0 & 0xffffffff))) & (1 << 31))
@@ -480,7 +480,7 @@ void OPPROTO op_sub_T1_T0_cc(void) @@ -480,7 +480,7 @@ void OPPROTO op_sub_T1_T0_cc(void)
480 env->xcc |= PSR_ZERO; 480 env->xcc |= PSR_ZERO;
481 if ((int64_t) T0 < 0) 481 if ((int64_t) T0 < 0)
482 env->xcc |= PSR_NEG; 482 env->xcc |= PSR_NEG;
483 - if (T0 < src1) 483 + if (src1 < T1)
484 env->xcc |= PSR_CARRY; 484 env->xcc |= PSR_CARRY;
485 if (((src1 ^ T1) & (src1 ^ T0)) & (1ULL << 63)) 485 if (((src1 ^ T1) & (src1 ^ T0)) & (1ULL << 63))
486 env->xcc |= PSR_OVF; 486 env->xcc |= PSR_OVF;
@@ -525,7 +525,7 @@ void OPPROTO op_subx_T1_T0_cc(void) @@ -525,7 +525,7 @@ void OPPROTO op_subx_T1_T0_cc(void)
525 env->xcc |= PSR_ZERO; 525 env->xcc |= PSR_ZERO;
526 if ((int64_t) T0 < 0) 526 if ((int64_t) T0 < 0)
527 env->xcc |= PSR_NEG; 527 env->xcc |= PSR_NEG;
528 - if (T0 < src1) 528 + if (src1 < T1)
529 env->xcc |= PSR_CARRY; 529 env->xcc |= PSR_CARRY;
530 if (((src1 ^ T1) & (src1 ^ T0)) & (1ULL << 63)) 530 if (((src1 ^ T1) & (src1 ^ T0)) & (1ULL << 63))
531 env->xcc |= PSR_OVF; 531 env->xcc |= PSR_OVF;