Yes, very weird. There are about 20 more in the base tree.
Some of them are missing "else", but some are not. > I'm grepping the tree for "} if" lines... > > I'm confident that these were intended as "else if", compare the > corresponding ror_* functions. Also, it doesn't actually change > the result. > > ok? > > Index: sys/dev/x86emu/x86emu.c > =================================================================== > RCS file: /cvs/src/sys/dev/x86emu/x86emu.c,v > retrieving revision 1.10 > diff -u -p -r1.10 x86emu.c > --- sys/dev/x86emu/x86emu.c 25 Nov 2018 19:52:08 -0000 1.10 > +++ sys/dev/x86emu/x86emu.c 1 Apr 2019 03:50:28 -0000 > @@ -7009,7 +7009,7 @@ rol_byte(struct x86emu *emu, uint8_t d, > CONDITIONAL_SET_FLAG(s == 1 && > XOR2((res & 0x1) + ((res >> 6) & 0x2)), > F_OF); > - } if (s != 0) { > + } else if (s != 0) { > /* set the new carry flag, Note that it is the low order bit > * of the result!!! */ > CONDITIONAL_SET_FLAG(res & 0x1, F_CF); > @@ -7035,7 +7035,7 @@ rol_word(struct x86emu *emu, uint16_t d, > CONDITIONAL_SET_FLAG(s == 1 && > XOR2((res & 0x1) + ((res >> 14) & 0x2)), > F_OF); > - } if (s != 0) { > + } else if (s != 0) { > /* set the new carry flag, Note that it is the low order bit > * of the result!!! */ > CONDITIONAL_SET_FLAG(res & 0x1, F_CF); > @@ -7061,7 +7061,7 @@ rol_long(struct x86emu *emu, uint32_t d, > CONDITIONAL_SET_FLAG(s == 1 && > XOR2((res & 0x1) + ((res >> 30) & 0x2)), > F_OF); > - } if (s != 0) { > + } else if (s != 0) { > /* set the new carry flag, Note that it is the low order bit > * of the result!!! */ > CONDITIONAL_SET_FLAG(res & 0x1, F_CF); > -- > Christian "naddy" Weisgerber na...@mips.inka.de >