Searched refs:aligned_addr (Results 1 – 4 of 4) sorted by relevance
/frameworks/libs/binary_translation/runtime_primitives/include/berberis/runtime_primitives/ |
D | memory_region_reservation.h | 45 GuestAddr aligned_addr = addr - (addr % sizeof(Reservation)); in Load() local 46 cpu->reservation_address = aligned_addr; in Load() 48 cpu->reservation_value = ReservationLoad(cpu, aligned_addr, mem_order); in Load() 51 return static_cast<Type>(cpu->reservation_value >> ((addr - aligned_addr) * CHAR_BIT)); in Load() 62 GuestAddr aligned_addr = addr - (addr % sizeof(Reservation)); in Store() local 63 if (aligned_addr != reservation_address) { in Store() 71 memcpy(reinterpret_cast<char*>(&new_value) + (addr - aligned_addr), &value, sizeof(Type)); in Store() 73 return ReservationExchange(cpu, aligned_addr, cur_value, new_value, mem_order) ? 0 : 1; in Store() 78 static void SetOwner(GuestAddr aligned_addr, void* cpu); 79 static Entry* TryLock(GuestAddr aligned_addr, void* cpu); [all …]
|
/frameworks/libs/binary_translation/runtime_primitives/ |
D | memory_region_reservation.cc | 99 void MemoryRegionReservation::SetOwner(GuestAddr aligned_addr, void* cpu) { in SetOwner() argument 100 auto& entry = GetEntry(aligned_addr); in SetOwner() 110 MemoryRegionReservation::Entry* MemoryRegionReservation::TryLock(GuestAddr aligned_addr, in TryLock() argument 112 auto& entry = GetEntry(aligned_addr); in TryLock() 128 GuestAddr aligned_addr, in ReservationLoad() argument 130 SetOwner(aligned_addr, cpu); in ReservationLoad() 143 return MemoryRegionReservationLoad(aligned_addr, mem_order); in ReservationLoad() 147 GuestAddr aligned_addr, in ReservationExchange() argument 151 auto* entry = TryLock(aligned_addr, cpu); in ReservationExchange() 158 ToHostAddr<std::atomic<Reservation>>(aligned_addr), in ReservationExchange()
|
/frameworks/libs/binary_translation/heavy_optimizer/riscv64/ |
D | frontend.h | 175 Register aligned_addr = AllocTempReg(); in Lr() local 176 Gen<PseudoCopy>(aligned_addr, addr, 8); in Lr() 178 Gen<x86_64::AndqRegImm>(aligned_addr, ~int32_t{sizeof(Reservation) - 1}, GetFlagsRegister()); in Lr() 180 MemoryRegionReservationLoad(aligned_addr); in Lr() 184 Gen<x86_64::SubqRegReg>(addr_offset, aligned_addr, GetFlagsRegister()); in Lr() 196 auto aligned_addr = AllocTempReg(); in Sc() local 197 Gen<PseudoCopy>(aligned_addr, addr, 8); in Sc() 199 Gen<x86_64::AndqRegImm>(aligned_addr, ~int32_t{sizeof(Reservation) - 1}, GetFlagsRegister()); in Sc() 207 Gen<x86_64::SubqRegReg>(addr_offset, aligned_addr, GetFlagsRegister()); in Sc() 216 return MemoryRegionReservationExchange(aligned_addr, reservation_value); in Sc() [all …]
|
D | frontend.cc | 856 void HeavyOptimizerFrontend::MemoryRegionReservationLoad(Register aligned_addr) { in MemoryRegionReservationLoad() argument 859 Gen<x86_64::MovqMemBaseDispReg>(x86_64::kMachineRegRBP, address_offset, aligned_addr); in MemoryRegionReservationLoad() 865 {aligned_addr, x86_64::CallImm::kIntRegType}, in MemoryRegionReservationLoad() 871 Gen<x86_64::MovqRegMemBaseDisp>(reservation, aligned_addr, 0); in MemoryRegionReservationLoad() 876 Register HeavyOptimizerFrontend::MemoryRegionReservationExchange(Register aligned_addr, in MemoryRegionReservationExchange() argument 894 Gen<x86_64::CmpqRegReg>(stored_aligned_addr, aligned_addr, GetFlagsRegister()); in MemoryRegionReservationExchange() 905 aligned_addr, curr_reservation_value, new_reservation_value, failure_bb); in MemoryRegionReservationExchange() 923 Register aligned_addr, in MemoryRegionReservationSwapWithLockedOwner() argument 939 {aligned_addr, x86_64::CallImm::kIntRegType}, in MemoryRegionReservationSwapWithLockedOwner() 953 rax, aligned_addr, 0, new_reservation_value, GetFlagsRegister()); in MemoryRegionReservationSwapWithLockedOwner()
|