Inside .NET - 2 byte compare op-codes

A small anomaly of the CIL instruction set is why the ceq, cgt, cgt.un, clt and clt.un instructions are 2-byte op-codes.

2-byte op-codes would normally be used for instructions that are not commonly used, as they (obviously) take up more space than 1-byte op-codes.

But the group of op-codes listed above are commonly used, and there appears to be plenty of space in the 1-byte op-code space for them to only use 1 byte - e.g. 0xBB - 0xBF.

So why do they use 2 bytes?

Leave a Reply