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