Merge pull request #1858 from cfallin/fix-scale-b1

Bugfix: scaled addressing mode: round B1 up to one byte.
This commit is contained in:
Chris Fallin
2020-06-11 11:16:07 -07:00
committed by GitHub
2 changed files with 156 additions and 0 deletions

View File

@@ -233,6 +233,9 @@ impl UImm12Scaled {
/// Create a UImm12Scaled from a raw offset and the known scale type, if
/// possible.
pub fn maybe_from_i64(value: i64, scale_ty: Type) -> Option<UImm12Scaled> {
// Ensure the type is at least one byte.
let scale_ty = if scale_ty == B1 { B8 } else { scale_ty };
let scale = scale_ty.bytes();
assert!(scale.is_power_of_two());
let scale = scale as i64;