@@ -512,37 +512,19 @@ uint64_t HELPER(paired_cmpxchg64_le)(CPUARMState *env, uint64_t addr,
512
512
uintptr_t ra = GETPC ();
513
513
uint64_t o0 , o1 ;
514
514
bool success ;
515
-
516
- #ifdef CONFIG_USER_ONLY
517
- /* ??? Enforce alignment. */
518
- uint64_t * haddr = g2h (env_cpu (env ), addr );
519
-
520
- set_helper_retaddr (ra );
521
- o0 = ldq_le_p (haddr + 0 );
522
- o1 = ldq_le_p (haddr + 1 );
523
- oldv = int128_make128 (o0 , o1 );
524
-
525
- success = int128_eq (oldv , cmpv );
526
- if (success ) {
527
- stq_le_p (haddr + 0 , int128_getlo (newv ));
528
- stq_le_p (haddr + 1 , int128_gethi (newv ));
529
- }
530
- clear_helper_retaddr ();
531
- #else
532
515
int mem_idx = cpu_mmu_index (env , false);
533
516
MemOpIdx oi0 = make_memop_idx (MO_LEQ | MO_ALIGN_16 , mem_idx );
534
517
MemOpIdx oi1 = make_memop_idx (MO_LEQ , mem_idx );
535
518
536
- o0 = helper_le_ldq_mmu (env , addr + 0 , oi0 , ra );
537
- o1 = helper_le_ldq_mmu (env , addr + 8 , oi1 , ra );
519
+ o0 = cpu_ldq_le_mmu (env , addr + 0 , oi0 , ra );
520
+ o1 = cpu_ldq_le_mmu (env , addr + 8 , oi1 , ra );
538
521
oldv = int128_make128 (o0 , o1 );
539
522
540
523
success = int128_eq (oldv , cmpv );
541
524
if (success ) {
542
- helper_le_stq_mmu (env , addr + 0 , int128_getlo (newv ), oi1 , ra );
543
- helper_le_stq_mmu (env , addr + 8 , int128_gethi (newv ), oi1 , ra );
525
+ cpu_stq_le_mmu (env , addr + 0 , int128_getlo (newv ), oi1 , ra );
526
+ cpu_stq_le_mmu (env , addr + 8 , int128_gethi (newv ), oi1 , ra );
544
527
}
545
- #endif
546
528
547
529
return !success ;
548
530
}
@@ -582,37 +564,19 @@ uint64_t HELPER(paired_cmpxchg64_be)(CPUARMState *env, uint64_t addr,
582
564
uintptr_t ra = GETPC ();
583
565
uint64_t o0 , o1 ;
584
566
bool success ;
585
-
586
- #ifdef CONFIG_USER_ONLY
587
- /* ??? Enforce alignment. */
588
- uint64_t * haddr = g2h (env_cpu (env ), addr );
589
-
590
- set_helper_retaddr (ra );
591
- o1 = ldq_be_p (haddr + 0 );
592
- o0 = ldq_be_p (haddr + 1 );
593
- oldv = int128_make128 (o0 , o1 );
594
-
595
- success = int128_eq (oldv , cmpv );
596
- if (success ) {
597
- stq_be_p (haddr + 0 , int128_gethi (newv ));
598
- stq_be_p (haddr + 1 , int128_getlo (newv ));
599
- }
600
- clear_helper_retaddr ();
601
- #else
602
567
int mem_idx = cpu_mmu_index (env , false);
603
568
MemOpIdx oi0 = make_memop_idx (MO_BEQ | MO_ALIGN_16 , mem_idx );
604
569
MemOpIdx oi1 = make_memop_idx (MO_BEQ , mem_idx );
605
570
606
- o1 = helper_be_ldq_mmu (env , addr + 0 , oi0 , ra );
607
- o0 = helper_be_ldq_mmu (env , addr + 8 , oi1 , ra );
571
+ o1 = cpu_ldq_be_mmu (env , addr + 0 , oi0 , ra );
572
+ o0 = cpu_ldq_be_mmu (env , addr + 8 , oi1 , ra );
608
573
oldv = int128_make128 (o0 , o1 );
609
574
610
575
success = int128_eq (oldv , cmpv );
611
576
if (success ) {
612
- helper_be_stq_mmu (env , addr + 0 , int128_gethi (newv ), oi1 , ra );
613
- helper_be_stq_mmu (env , addr + 8 , int128_getlo (newv ), oi1 , ra );
577
+ cpu_stq_be_mmu (env , addr + 0 , int128_gethi (newv ), oi1 , ra );
578
+ cpu_stq_be_mmu (env , addr + 8 , int128_getlo (newv ), oi1 , ra );
614
579
}
615
- #endif
616
580
617
581
return !success ;
618
582
}
0 commit comments