So I’m doing a little experimenting with the compiler (I’m to that point in my C++ ‘career’) and I noticed that a call to _rotl gets compiled/assembled directly; by that, I mean that instead of the assembly performing a call, the (albeit only 2) opcodes are seemingly cut/pasted directly where the call is.
What is the reasoning behind this? I believe the term is “inline function” but I could be mistaken.
It is not an inline function, it is an intrinsic function. Designed to take advantage of specific capabilities of the target processor. It gets inlined unconditionally and without otherwise declaring the function inline, typically producing only a single machine code instruction. In the case of _rotl(), using the x86 ROL instruction.