mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-11 00:56:52 +00:00
added/fixed various cmovXX opcodes (#5033)
As per the Intel manual: ``` CMOVcc - Conditional Move: | Opcode | Instruction | Op/En| 64-Bit Mode| Compat/Leg Mode| Description | 0F 47 /r | CMOVA r16, r/m16 | RM | Valid | Valid | Move if above (CF=0 and ZF=0). | REX.W + 0F 43 /r| CMOVAE r64, r/m64 | RM | Valid | N.E. | Move if above or equal (CF=0). | 0F 42 /r | CMOVB r16, r/m16 | RM | Valid | Valid | Move if below (CF=1). | REX.W + 0F 46 /r| CMOVBE r64, r/m64 | RM | Valid | N.E. | Move if below or equal (CF=1 or ZF=1). | 0F 42 /r | CMOVC r16, r/m16 | RM | Valid | Valid | Move if carry (CF=1). | REX.W + 0F 44 /r| CMOVE r64, r/m64 | RM | Valid | N.E. | Move if equal (ZF=1). | 0F 4F /r | CMOVG r16, r/m16 | RM | Valid | Valid | Move if greater (ZF=0 and SF=OF). | REX.W + 0F 4D /r| CMOVGE r64, r/m64 | RM | Valid | N.E. | Move if greater or equal (SF=OF). | 0F 4C /r | CMOVL r16, r/m16 | RM | Valid | Valid | Move if less (SF!= OF). | REX.W + 0F 4E /r| CMOVLE r64, r/m64 | RM | Valid | N.E. | Move if less or equal (ZF=1 or SF!= OF). | 0F 46 /r | CMOVNA r16, r/m16 | RM | Valid | Valid | Move if not above (CF=1 or ZF=1). | REX.W + 0F 42 /r| CMOVNAE r64, r/m64| RM | Valid | N.E. | Move if not above or equal (CF=1). | 0F 43 /r | CMOVNB r16, r/m16 | RM | Valid | Valid | Move if not below (CF=0). | REX.W + 0F 47 /r| CMOVNBE r64, r/m64| RM | Valid | N.E. | Move if not below or equal (CF=0 and | | | | | | ZF=0). | 0F 43 /r | CMOVNC r16, r/m16 | RM | Valid | Valid | Move if not carry (CF=0). | REX.W + 0F 45 /r| CMOVNE r64, r/m64 | RM | Valid | N.E. | Move if not equal (ZF=0). | 0F 4E /r | CMOVNG r16, r/m16 | RM | Valid | Valid | Move if not greater (ZF=1 or SF!= OF). | REX.W + 0F 4C /r| CMOVNGE r64, r/m64| RM | Valid | N.E. | Move if not greater or equal (SF!= OF). | 0F 4D /r | CMOVNL r16, r/m16 | RM | Valid | Valid | Move if not less (SF=OF). | REX.W + 0F 4F /r| CMOVNLE r64, r/m64| RM | Valid | N.E. | Move if not less or equal (ZF=0 and | | | | | | SF=OF). | 0F 41 /r | CMOVNO r16, r/m16 | RM | Valid | Valid | Move if not overflow (OF=0). | REX.W + 0F 4B /r| CMOVNP r64, r/m64 | RM | Valid | N.E. | Move if not parity (PF=0). | 0F 49 /r | CMOVNS r16, r/m16 | RM | Valid | Valid | Move if not sign (SF=0). | REX.W + 0F 45 /r| CMOVNZ r64, r/m64 | RM | Valid | N.E. | Move if not zero (ZF=0). | 0F 40 /r | CMOVO r16, r/m16 | RM | Valid | Valid | Move if overflow (OF=1). | REX.W + 0F 4A /r| CMOVP r64, r/m64 | RM | Valid | N.E. | Move if parity (PF=1). | 0F 4A /r | CMOVPE r16, r/m16 | RM | Valid | Valid | Move if parity even (PF=1). | REX.W + 0F 4B /r| CMOVPO r64, r/m64 | RM | Valid | N.E. | Move if parity odd (PF=0). | 0F 48 /r | CMOVS r16, r/m16 | RM | Valid | Valid | Move if sign (SF=1). | REX.W + 0F 44 /r| CMOVZ r64, r/m64 | RM | Valid | N.E. | Move if zero (ZF=1). ``` * fixed typo * or -> nor
This commit is contained in:
parent
238cf897b8
commit
18ffea18cc
@ -45,24 +45,36 @@ clflush=flush cache line
|
||||
cli=clear interrupt flag
|
||||
clts=clear task-switched flag in cr0
|
||||
cmc=complement carry flag
|
||||
cmovb=conditional move - below/not above or equal/carry (cf=1)
|
||||
cmovbe=conditional move - below or equal/not above (cf=1 and zf=1)
|
||||
cmove=conditional move - if equal (zf=1)
|
||||
cmovl=conditional move - less/not greater (sf!=of)
|
||||
cmovle=conditional move - less or equal/not greater ((zf=1) or (sf!=of))
|
||||
cmova=conditional move - above/not below nor equal (cf=0 and zf=0)
|
||||
cmovae=conditional move - above or equal/not below/not carry (cf=0)
|
||||
cmovb=conditional move - below/not above nor equal/carry (cf=1)
|
||||
cmovbe=conditional move - below or equal/not above (cf=1 or zf=1)
|
||||
cmovc=conditional move - carry/below/not above or equal (cf=1)
|
||||
cmove=conditional move - equal/zero (zf=1)
|
||||
cmovg=conditional move - greater/not less nor equal (zf=0 and sf=of)
|
||||
cmovge=conditional move - greater or equal/not less (sf=of)
|
||||
cmovl=conditional move - less/not greater nor equal (sf!=of)
|
||||
cmovle=conditional move - less or equal/not greater (zf=1 or sf!=of)
|
||||
cmovna=conditional move - not above/below or equal (cf=1 or zf=1)
|
||||
cmovnae=conditional move - not above nor equal/below/carry (cf=1)
|
||||
cmovnb=conditional move - not below/above or equal/not carry (cf=0)
|
||||
cmovnbe=conditional move - not below or equal/above (cf=0 and zf=0)
|
||||
cmovne=conditional move - if not equal (zf=0)
|
||||
cmovnbe=conditional move - not below nor equal/above (cf=0 and zf=0)
|
||||
cmovnc=conditional move - not carry/above or equal/not below (cf=0)
|
||||
cmovne=conditional move - not equal/not zero (zf=0)
|
||||
cmovng=conditional move - not greater/less or equal (zf=1 or sf!=of)
|
||||
cmovnge=conditional move - not greater nor equal/less (sf!=of)
|
||||
cmovnl=conditional move - not less/greater or equal (sf=of)
|
||||
cmovnle=conditional move - not less nor equal/greater ((zf=0) and (sf=of))
|
||||
cmovnle=conditional move - not less nor equal/greater (zf=0 and sf=of)
|
||||
cmovno=conditional move - not overflow (of=0)
|
||||
cmovnp=conditional move - not parity/parity odd
|
||||
cmovnp=conditional move - not parity/parity odd (pf=0)
|
||||
cmovns=conditional move - not sign (sf=0)
|
||||
cmovnz=conditional move - not zero/not equal (zf=1)
|
||||
cmovnz=conditional move - not zero/not equal (zf=0)
|
||||
cmovo=conditional move - overflow (of=1)
|
||||
cmovp=conditional move - parity/parity even (pf=1)
|
||||
cmovpe=conditional move - parity even/parity (pf=1)
|
||||
cmovpo=conditional move - parity odd/not parity (pf=0)
|
||||
cmovs=conditional move - sign (sf=1)
|
||||
cmovz=conditional move - zero/equal (zf=0)
|
||||
cmovz=conditional move - zero/equal (zf=1)
|
||||
cmp=compare two operands
|
||||
cmppd=compare packed double-fp values
|
||||
cmpps=compare packed single-fp values
|
||||
|
Loading…
x
Reference in New Issue
Block a user