I'm not understanding why fcmovb st(0) st(4) is not acting the way I expect. afaiu it will set st0 = st4 if the CF flag is set.
Before:
gdb> i r eflags st0 st4
eflags 0x282 [ SF IF ]
st0 0 (raw 0x00...)
st4 0 (raw 0x00...)
After:
gdb> i r eflags st0 st4
eflags 0x282 [ SF IF ]
st0 -nan(0xc0...) (raw 0xffffc00...)
st4 0 (raw 0x00...)
What is going here? Thanks in advance.