Removed alignment checks for non-capability loads and stores. PiperOrigin-RevId: 716710396 Change-Id: I4404c96a41bd70d46fe152883c54de560b8577db
diff --git a/cheriot/cheriot_state.cc b/cheriot/cheriot_state.cc index 6a8c385..cbbdc22 100644 --- a/cheriot/cheriot_state.cc +++ b/cheriot/cheriot_state.cc
@@ -458,13 +458,6 @@ void CheriotState::LoadMemory(const Instruction *inst, uint64_t address, DataBuffer *db, Instruction *child_inst, ReferenceCount *context) { - // Check for alignment. - uint64_t mask = db->size<uint8_t>() - 1; - if ((address & mask) != 0) { - Trap(/*is_interrupt*/ false, address, *EC::kLoadAddressMisaligned, - inst == nullptr ? 0 : inst->address(), inst); - return; - } // Check for physical address violation. if (address < min_physical_address_ || address > max_physical_address_) { Trap(/*is_interrupt*/ false, address, *EC::kLoadAccessFault, @@ -500,13 +493,6 @@ void CheriotState::StoreMemory(const Instruction *inst, uint64_t address, DataBuffer *db) { - // Check for alignment. - uint64_t mask = db->size<uint8_t>() - 1; - if ((address & mask) != 0) { - Trap(/*is_interrupt*/ false, address, *EC::kStoreAddressMisaligned, - inst == nullptr ? 0 : inst->address(), inst); - return; - } // Check for physical address violation. if (address < min_physical_address_ || address > max_physical_address_) { Trap(/*is_interrupt*/ false, address, *EC::kStoreAccessFault,