Fix bug in VolatileReadable implementation for arrays. am: cd01182ec7 am: 7693530839
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/virtio-drivers/+/3125135
Change-Id: I357ea2a61a5ed8ba0e73eb3c57ed224ea53d7e1f
Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/patches/mmio.patch b/patches/mmio.patch
index 8e684f6..d11af71 100644
--- a/patches/mmio.patch
+++ b/patches/mmio.patch
@@ -37,7 +37,7 @@
}
diff --git a/src/volatile.rs b/src/volatile.rs
-index b7059d1..af7ef27 100644
+index b7059d1..67ebba3 100644
--- a/src/volatile.rs
+++ b/src/volatile.rs
@@ -33,12 +33,14 @@ pub trait VolatileReadable<T> {
@@ -218,7 +218,7 @@
+ asm!(
+ "ldrb {value:w}, [{ptr}]",
+ value = out(reg) value[i],
-+ ptr = in(reg) (self as *const u8),
++ ptr = in(reg) (self as *const u8).add(i),
+ );
+ }
+ value
diff --git a/src/volatile.rs b/src/volatile.rs
index af7ef27..67ebba3 100644
--- a/src/volatile.rs
+++ b/src/volatile.rs
@@ -212,7 +212,7 @@
asm!(
"ldrb {value:w}, [{ptr}]",
value = out(reg) value[i],
- ptr = in(reg) (self as *const u8),
+ ptr = in(reg) (self as *const u8).add(i),
);
}
value