Revision 426613db target-ppc/op_mem.h
b/target-ppc/op_mem.h | ||
---|---|---|
534 | 534 |
RETURN(); |
535 | 535 |
} |
536 | 536 |
|
537 |
void OPPROTO glue(op_ldarx, MEMSUFFIX) (void) |
|
538 |
{ |
|
539 |
if (unlikely(T0 & 0x03)) { |
|
540 |
do_raise_exception(EXCP_ALIGN); |
|
541 |
} else { |
|
542 |
T1 = glue(ldq, MEMSUFFIX)((uint32_t)T0); |
|
543 |
regs->reserve = (uint32_t)T0; |
|
544 |
} |
|
545 |
RETURN(); |
|
546 |
} |
|
547 |
|
|
537 | 548 |
void OPPROTO glue(op_ldarx_64, MEMSUFFIX) (void) |
538 | 549 |
{ |
539 | 550 |
if (unlikely(T0 & 0x03)) { |
... | ... | |
569 | 580 |
RETURN(); |
570 | 581 |
} |
571 | 582 |
|
583 |
void OPPROTO glue(op_ldarx_le, MEMSUFFIX) (void) |
|
584 |
{ |
|
585 |
if (unlikely(T0 & 0x03)) { |
|
586 |
do_raise_exception(EXCP_ALIGN); |
|
587 |
} else { |
|
588 |
T1 = glue(ld64r, MEMSUFFIX)((uint32_t)T0); |
|
589 |
regs->reserve = (uint32_t)T0; |
|
590 |
} |
|
591 |
RETURN(); |
|
592 |
} |
|
593 |
|
|
572 | 594 |
void OPPROTO glue(op_ldarx_le_64, MEMSUFFIX) (void) |
573 | 595 |
{ |
574 | 596 |
if (unlikely(T0 & 0x03)) { |
... | ... | |
615 | 637 |
RETURN(); |
616 | 638 |
} |
617 | 639 |
|
640 |
void OPPROTO glue(op_stdcx, MEMSUFFIX) (void) |
|
641 |
{ |
|
642 |
if (unlikely(T0 & 0x03)) { |
|
643 |
do_raise_exception(EXCP_ALIGN); |
|
644 |
} else { |
|
645 |
if (unlikely(regs->reserve != (uint32_t)T0)) { |
|
646 |
env->crf[0] = xer_ov; |
|
647 |
} else { |
|
648 |
glue(stq, MEMSUFFIX)((uint32_t)T0, T1); |
|
649 |
env->crf[0] = xer_ov | 0x02; |
|
650 |
} |
|
651 |
} |
|
652 |
regs->reserve = -1; |
|
653 |
RETURN(); |
|
654 |
} |
|
655 |
|
|
618 | 656 |
void OPPROTO glue(op_stdcx_64, MEMSUFFIX) (void) |
619 | 657 |
{ |
620 | 658 |
if (unlikely(T0 & 0x03)) { |
... | ... | |
665 | 703 |
RETURN(); |
666 | 704 |
} |
667 | 705 |
|
706 |
void OPPROTO glue(op_stdcx_le, MEMSUFFIX) (void) |
|
707 |
{ |
|
708 |
if (unlikely(T0 & 0x03)) { |
|
709 |
do_raise_exception(EXCP_ALIGN); |
|
710 |
} else { |
|
711 |
if (unlikely(regs->reserve != (uint32_t)T0)) { |
|
712 |
env->crf[0] = xer_ov; |
|
713 |
} else { |
|
714 |
glue(st64r, MEMSUFFIX)((uint32_t)T0, T1); |
|
715 |
env->crf[0] = xer_ov | 0x02; |
|
716 |
} |
|
717 |
} |
|
718 |
regs->reserve = -1; |
|
719 |
RETURN(); |
|
720 |
} |
|
721 |
|
|
668 | 722 |
void OPPROTO glue(op_stdcx_le_64, MEMSUFFIX) (void) |
669 | 723 |
{ |
670 | 724 |
if (unlikely(T0 & 0x03)) { |
Also available in: Unified diff