News for hackers. Stuff that matters.
Re:Unexpected Ways Memory Subsystem Interacts with Branch Pr... by xoranth on Friday December 29, 2023 @08:30AM (#38804652)
> So you have to follow a comparison operation with either a conditional branch or a conditional move (and earlier processors in the x86 family didn't have conditional moves).

The x86 family has the `setCC` instructions [^1] that move bits from the flag register to a general purpose one. Example from godbolt, see `setg`:

https://c.godbolt.org/z/MY37oP9vz

[^1]: https://www.felixcloutier.com/x86/setcc

Re:Unexpected Ways Memory Subsystem Interacts with Branch Pr... by gpderetta on Friday December 29, 2023 @05:27PM (#38810990)
SETcc is indeed what GCC typically uses. You can also play tricks with the carry flag and ADC but I don't think I have ever seen GCC do it.
Re:Unexpected Ways Memory Subsystem Interacts with Branch Pr... by xoranth on Saturday December 30, 2023 @12:04AM (#38812928)
The latest version can [^1], though anecdotally I've seen clang/LLVM being smarter about it.

[^1]: https://c.godbolt.org/z/vP8edfen7