diff --git a/compiler/optimizing/stack_map_stream.h b/compiler/optimizing/stack_map_stream.h
index 63a0286..e1a5afe 100644
--- a/compiler/optimizing/stack_map_stream.h
+++ b/compiler/optimizing/stack_map_stream.h
@@ -105,8 +105,8 @@
         + ComputeStackMapsSize()
         + ComputeDexRegisterMapsSize()
         + ComputeInlineInfoSize();
-    // On ARM, CodeInfo data must be 4-byte aligned.
-    return RoundUp(size, kWordAlignment);
+    // Note: use RoundUp to word-size here if you want CodeInfo objects to be word aligned.
+    return size;
   }
 
   size_t ComputeStackMaskSize() const {
diff --git a/runtime/stack_map.h b/runtime/stack_map.h
index 0db589f..961772c 100644
--- a/runtime/stack_map.h
+++ b/runtime/stack_map.h
@@ -632,27 +632,27 @@
   }
 
   uint32_t GetOverallSize() const {
-    return region_.Load<uint32_t>(kOverallSizeOffset);
+    return region_.LoadUnaligned<uint32_t>(kOverallSizeOffset);
   }
 
   void SetOverallSize(uint32_t size) {
-    region_.Store<uint32_t>(kOverallSizeOffset, size);
+    region_.StoreUnaligned<uint32_t>(kOverallSizeOffset, size);
   }
 
   uint32_t GetStackMaskSize() const {
-    return region_.Load<uint32_t>(kStackMaskSizeOffset);
+    return region_.LoadUnaligned<uint32_t>(kStackMaskSizeOffset);
   }
 
   void SetStackMaskSize(uint32_t size) {
-    region_.Store<uint32_t>(kStackMaskSizeOffset, size);
+    region_.StoreUnaligned<uint32_t>(kStackMaskSizeOffset, size);
   }
 
   size_t GetNumberOfStackMaps() const {
-    return region_.Load<uint32_t>(kNumberOfStackMapsOffset);
+    return region_.LoadUnaligned<uint32_t>(kNumberOfStackMapsOffset);
   }
 
   void SetNumberOfStackMaps(uint32_t number_of_stack_maps) {
-    region_.Store<uint32_t>(kNumberOfStackMapsOffset, number_of_stack_maps);
+    region_.StoreUnaligned<uint32_t>(kNumberOfStackMapsOffset, number_of_stack_maps);
   }
 
   // Get the size of one stack map of this CodeInfo object, in bytes.
