push
github
x86/x64: Don't use undefined MUL/IMUL zero flag. Reported by VrIgHtEr. (cherry picked from commit c92d0cb19) When emitting the arithmetic operations on registers via the `asm_intarith()`, the next `test` instruction may be dropped since the flag register is modified by the arithmetic instruction to be emitted. But the `imul` instruction [1] doesn't modify ZF, so its value is undefined. This patch prevents dropping the `test` instruction if the emitted instruction is `imul`. Sergey Kaplun: * added the description and the test for the problem [1]: https://www.felixcloutier.com/x86/imul Part of tarantool/tarantool#11691 Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Signed-off-by: Sergey Kaplun <skaplun@tarantool.org> (cherry picked from commit bb02057ad)
5711 of 6046 branches covered (94.46%)
Branch coverage included in aggregate %.
1 of 1 new or added line in 1 file covered. (100.0%)
8 existing lines in 4 files now uncovered.21791 of 23512 relevant lines covered (92.68%)
3861994.29 hits per line