Let me propose an extension to the command setcc.
Often we need booleans not as bytes with the values 0 and 1...
By utilizing the 3 currently unused bits I propose the following meaning:
Bit #2: 0=byte, 1=dword
Bit #0 and #1:
00: false => 0, true => 1 // classical case as in C or Pascal
01: false => 0, true => -1 // for e.g. bit masks
10: false => -1, true => 1 // Sign
11: false => 0, true => no change // keep or zero out
As an exception for the combination 111 and as the target register esp only the carry flag should be set accordingly.
Needless to say that the usual prefixes for word and qword should work as well.
An encoding as 0f 9x /y would be OK if the superfluous bits (reg field) are assumed 0, but they have not (yet?) been documented as reserved...
An encoding without this problem could therefore be this: f2 0f 9x /y.


