From 49a0fdf408d8c131db7573e77634c4488dc1e48a Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Sun, 24 Jul 2016 11:40:07 +0000 Subject: [PATCH] Enable PCMPxSTRx cases 0x62 and 0x72, and reformat the associated switch statements a bit more consistently. Fixes #353384 and #353727. git-svn-id: svn://svn.valgrind.org/vex/trunk@3230 --- VEX/priv/guest_amd64_toIR.c | 26 +++++++++++++++++--------- VEX/priv/guest_generic_x87.c | 15 ++++++++++----- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index 1fe5653280..601dc53665 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -18667,17 +18667,25 @@ static Long dis_PCMPxSTRx ( const VexAbiInfo* vbi, Prefix pfx, immediate byte. Is it one we can actually handle? Throw out any cases for which the helper function has not been verified. */ switch (imm) { - case 0x00: case 0x02: case 0x08: case 0x0A: case 0x0C: case 0x0E: - case 0x12: case 0x14: case 0x18: case 0x1A: - case 0x30: case 0x34: case 0x38: case 0x3A: - case 0x40: case 0x42: case 0x44: case 0x46: case 0x4A: - case 0x70: + case 0x00: case 0x02: + case 0x08: case 0x0A: case 0x0C: case 0x0E: + case 0x12: case 0x14: + case 0x18: case 0x1A: + case 0x30: case 0x34: + case 0x38: case 0x3A: + case 0x40: case 0x42: case 0x44: case 0x46: + case 0x4A: + case 0x62: + case 0x70: case 0x72: break; // the 16-bit character versions of the above - case 0x01: case 0x03: case 0x09: case 0x0B: case 0x0D: - case 0x13: case 0x19: case 0x1B: - case 0x39: case 0x3B: - case 0x45: case 0x4B: + case 0x01: case 0x03: + case 0x09: case 0x0B: case 0x0D: + case 0x13: + case 0x19: case 0x1B: + case 0x39: case 0x3B: + case 0x45: + case 0x4B: break; default: return delta0; /*FAIL*/ diff --git a/VEX/priv/guest_generic_x87.c b/VEX/priv/guest_generic_x87.c index 9a3c603ef6..9f08352ebc 100644 --- a/VEX/priv/guest_generic_x87.c +++ b/VEX/priv/guest_generic_x87.c @@ -795,11 +795,16 @@ Bool compute_PCMPxSTRx ( /*OUT*/V128* resV, even if they would probably work. Life is too short to have unvalidated cases in the code base. */ switch (imm8) { - case 0x00: case 0x02: case 0x08: case 0x0A: case 0x0C: case 0x0E: - case 0x12: case 0x14: case 0x18: case 0x1A: - case 0x30: case 0x34: case 0x38: case 0x3A: - case 0x40: case 0x42: case 0x44: case 0x46: case 0x4A: - case 0x70: + case 0x00: case 0x02: + case 0x08: case 0x0A: case 0x0C: case 0x0E: + case 0x12: case 0x14: + case 0x18: case 0x1A: + case 0x30: case 0x34: + case 0x38: case 0x3A: + case 0x40: case 0x42: case 0x44: case 0x46: + case 0x4A: + case 0x62: + case 0x70: case 0x72: break; default: return False; -- 2.47.2