Fix is_32bit logic
Change-Id: I5df3a100b6536d34b885efee8688d90230538d0c
Signed-off-by: Tomás González <tomasagustin.gonzalezorlando@arm.com>
diff --git a/src/lib.rs b/src/lib.rs
index c87fa90..559d2c2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -141,7 +141,7 @@
impl FuncId {
/// Returns true if this is a 32-bit call, or false if it is a 64-bit call.
pub fn is_32bit(&self) -> bool {
- u32::from(*self) & (1 << 30) != 0
+ u32::from(*self) & (1 << 30) == 0
}
}
@@ -2070,4 +2070,21 @@
assert_eq!(Interface::from_regs(version, ®s).unwrap(), interface);
}
}
+
+ #[test]
+ fn is_32bit() {
+ let interface_64 = Interface::MsgSendDirectReq {
+ src_id: 0,
+ dst_id: 1,
+ args: DirectMsgArgs::Args64([0, 0, 0, 0, 0]),
+ };
+ assert!(!interface_64.is_32bit());
+
+ let interface_32 = Interface::MsgSendDirectReq {
+ src_id: 0,
+ dst_id: 1,
+ args: DirectMsgArgs::Args32([0, 0, 0, 0, 0]),
+ };
+ assert!(interface_32.is_32bit());
+ }
}