Florian Weimer
3ec7c02cc3
x86-64: memcmp-avx2-movbe.S needs saturating subtraction [BZ #21662 ]
...
This code:
L(between_2_3):
/* Load as big endian with overlapping loads and bswap to avoid
branches. */
movzwl -2(%rdi, %rdx), %eax
movzwl -2(%rsi, %rdx), %ecx
shll $16, %eax
shll $16, %ecx
movzwl (%rdi), %edi
movzwl (%rsi), %esi
orl %edi, %eax
orl %esi, %ecx
bswap %eax
bswap %ecx
subl %ecx, %eax
ret
needs a saturating subtract because the full register is used.
With this commit, only the lower 24 bits of the register are used,
so a regular subtraction suffices.
The test case change adds coverage for these kinds of bugs.
2017-06-23 17:24:40 +02:00
..
2017-06-20 08:21:24 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-14 08:14:34 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-11 15:28:08 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-20 08:21:24 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-05-10 00:25:59 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-03-23 11:32:29 -03:00
2017-01-01 00:14:16 +00:00
2017-06-20 20:30:06 -04:00
2017-03-01 20:32:50 -05:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-20 20:30:06 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-03-01 20:33:46 -05:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-20 08:21:24 -04:00
2017-06-20 20:30:06 -04:00
2017-06-20 20:30:06 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-20 20:30:06 -04:00
2017-06-20 08:21:24 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-03-01 20:33:46 -05:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-20 20:30:06 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-11 15:28:08 +00:00
2017-01-01 00:14:16 +00:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-05-25 11:38:01 -07:00
2017-06-23 17:24:40 +02:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-01-01 00:14:16 +00:00
2017-06-08 09:56:01 -07:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-01-01 00:14:16 +00:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-01-01 00:14:16 +00:00
2017-05-11 19:27:59 -04:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-04-05 10:28:41 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-05-11 19:27:59 -04:00
2017-01-01 00:14:16 +00:00
2017-02-25 09:59:46 -05:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2009-04-07 06:51:59 +00:00
2009-04-07 06:51:59 +00:00
2017-01-01 00:14:16 +00:00
2016-12-16 16:21:54 -05:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00