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,