diff options
| -rw-r--r-- | src/shared/evex.in | 2 | ||||
| -rw-r--r-- | test/long_mode/mod.rs | 1 | ||||
| -rw-r--r-- | test/protected_mode/mod.rs | 1 | ||||
| -rw-r--r-- | test/real_mode/mod.rs | 1 | 
4 files changed, 4 insertions, 1 deletions
diff --git a/src/shared/evex.in b/src/shared/evex.in index 414074e..5d3b053 100644 --- a/src/shared/evex.in +++ b/src/shared/evex.in @@ -238,7 +238,7 @@ pub(crate) fn read_evex<            _ => None          };          if let Some(size) = overridden_size { -          instruction.disp *= size; +          instruction.disp = instruction.disp.wrapping_mul(size);          } else {            apply_disp_scale(instruction);          } diff --git a/test/long_mode/mod.rs b/test/long_mode/mod.rs index ee0ab4e..d23df49 100644 --- a/test/long_mode/mod.rs +++ b/test/long_mode/mod.rs @@ -3395,4 +3395,5 @@ fn from_llvm() {  fn from_reports() {      // negative compressed evex displacements should not overflow and panic      test_display(&[0x62, 0xf2, 0x6d, 0xac, 0x00, 0x59, 0xa7], "vpshufb ymm3{k4}{z}, ymm2, ymmword [rcx - 0xb20]"); +    test_display(&[0x62, 0xf2, 0xfd, 0x0f, 0x8a, 0x62, 0xf2], "vcompresspd xmmword [rdx - 0x70]{k7}, xmm4");  } diff --git a/test/protected_mode/mod.rs b/test/protected_mode/mod.rs index 70dfb78..1b0ca59 100644 --- a/test/protected_mode/mod.rs +++ b/test/protected_mode/mod.rs @@ -3082,4 +3082,5 @@ fn from_llvm() {  fn from_reports() {      // negative compressed evex displacements should not overflow and panic      test_display(&[0x62, 0xf2, 0x6d, 0xac, 0x00, 0x59, 0xa7], "vpshufb ymm3{k4}{z}, ymm2, ymmword [ecx - 0xb20]"); +    test_display(&[0x62, 0xf2, 0xfd, 0x0f, 0x8a, 0x62, 0xf2], "vcompresspd xmmword [edx - 0x70]{k7}, xmm4");  } diff --git a/test/real_mode/mod.rs b/test/real_mode/mod.rs index b13358a..b2d6d8d 100644 --- a/test/real_mode/mod.rs +++ b/test/real_mode/mod.rs @@ -18367,4 +18367,5 @@ fn test_invalid_sequences() {  fn from_reports() {      // negative compressed evex displacements should not overflow and panic      test_display(&[0x62, 0xf2, 0x6d, 0xac, 0x00, 0x59, 0xa7], "vpshufb ymm3{k4}{z}, ymm2, ymmword [bx + di - 0xb20]"); +    test_display(&[0x62, 0xf2, 0xfd, 0x0f, 0x8a, 0x62, 0xf2], "vcompresspd xmmword [bp + si - 0x70]{k7}, xmm4");  }  | 
