MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / decode_iclass_asimdshf

Function decode_iclass_asimdshf

arch/arm64/disassembler/decode1.c:1958–2005  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1956}
1957
1958int decode_iclass_asimdshf(context *ctx, Instruction *dec)
1959{
1960 uint32_t U=(INSWORD>>29)&1, opcode=(INSWORD>>11)&0x1f;
1961 if(!U && !opcode) return SSHR_advsimd(ctx, dec); // -> SSHR_asimdshf_R
1962 if(!U && opcode==2) return SSRA_advsimd(ctx, dec); // -> SSRA_asimdshf_R
1963 if(!U && opcode==4) return SRSHR_advsimd(ctx, dec); // -> SRSHR_asimdshf_R
1964 if(!U && opcode==6) return SRSRA_advsimd(ctx, dec); // -> SRSRA_asimdshf_R
1965 if(!U && opcode==8) UNALLOCATED(ENC_UNALLOCATED_23_ASIMDSHF);
1966 if(!U && opcode==10) return SHL_advsimd(ctx, dec); // -> SHL_asimdshf_R
1967 if(!U && opcode==12) UNALLOCATED(ENC_UNALLOCATED_29_ASIMDSHF);
1968 if(!U && opcode==14) return SQSHL_advsimd_imm(ctx, dec); // -> SQSHL_asimdshf_R
1969 if(!U && opcode==0x10) return SHRN_advsimd(ctx, dec); // -> SHRN_asimdshf_N
1970 if(!U && opcode==0x11) return RSHRN_advsimd(ctx, dec); // -> RSHRN_asimdshf_N
1971 if(!U && opcode==0x12) return SQSHRN_advsimd(ctx, dec); // -> SQSHRN_asimdshf_N
1972 if(!U && opcode==0x13) return SQRSHRN_advsimd(ctx, dec); // -> SQRSHRN_asimdshf_N
1973 if(!U && opcode==0x14) return SSHLL_advsimd(ctx, dec); // -> SSHLL_asimdshf_L
1974 if(!U && opcode==0x1c) return SCVTF_advsimd_fix(ctx, dec); // -> SCVTF_asimdshf_C
1975 if(!U && opcode==0x1f) return FCVTZS_advsimd_fix(ctx, dec); // -> FCVTZS_asimdshf_C
1976 if(U && !opcode) return USHR_advsimd(ctx, dec); // -> USHR_asimdshf_R
1977 if(U && opcode==2) return USRA_advsimd(ctx, dec); // -> USRA_asimdshf_R
1978 if(U && opcode==4) return URSHR_advsimd(ctx, dec); // -> URSHR_asimdshf_R
1979 if(U && opcode==6) return URSRA_advsimd(ctx, dec); // -> URSRA_asimdshf_R
1980 if(U && opcode==8) return SRI_advsimd(ctx, dec); // -> SRI_asimdshf_R
1981 if(U && opcode==10) return SLI_advsimd(ctx, dec); // -> SLI_asimdshf_R
1982 if(U && opcode==12) return SQSHLU_advsimd(ctx, dec); // -> SQSHLU_asimdshf_R
1983 if(U && opcode==14) return UQSHL_advsimd_imm(ctx, dec); // -> UQSHL_asimdshf_R
1984 if(U && opcode==0x10) return SQSHRUN_advsimd(ctx, dec); // -> SQSHRUN_asimdshf_N
1985 if(U && opcode==0x11) return SQRSHRUN_advsimd(ctx, dec); // -> SQRSHRUN_asimdshf_N
1986 if(U && opcode==0x12) return UQSHRN_advsimd(ctx, dec); // -> UQSHRN_asimdshf_N
1987 if(U && opcode==0x13) return UQRSHRN_advsimd(ctx, dec); // -> UQRSHRN_asimdshf_N
1988 if(U && opcode==0x14) return USHLL_advsimd(ctx, dec); // -> USHLL_asimdshf_L
1989 if(U && opcode==0x1c) return UCVTF_advsimd_fix(ctx, dec); // -> UCVTF_asimdshf_C
1990 if(U && opcode==0x1f) return FCVTZU_advsimd_fix(ctx, dec); // -> FCVTZU_asimdshf_C
1991 if(opcode==1) UNALLOCATED(ENC_UNALLOCATED_13_ASIMDSHF);
1992 if(opcode==3) UNALLOCATED(ENC_UNALLOCATED_16_ASIMDSHF);
1993 if(opcode==5) UNALLOCATED(ENC_UNALLOCATED_19_ASIMDSHF);
1994 if(opcode==7) UNALLOCATED(ENC_UNALLOCATED_22_ASIMDSHF);
1995 if(opcode==9) UNALLOCATED(ENC_UNALLOCATED_25_ASIMDSHF);
1996 if(opcode==11) UNALLOCATED(ENC_UNALLOCATED_28_ASIMDSHF);
1997 if(opcode==13) UNALLOCATED(ENC_UNALLOCATED_31_ASIMDSHF);
1998 if(opcode==15) UNALLOCATED(ENC_UNALLOCATED_34_ASIMDSHF);
1999 if(opcode==0x15) UNALLOCATED(ENC_UNALLOCATED_45_ASIMDSHF);
2000 if(opcode==0x1d) UNALLOCATED(ENC_UNALLOCATED_50_ASIMDSHF);
2001 if(opcode==0x1e) UNALLOCATED(ENC_UNALLOCATED_51_ASIMDSHF);
2002 if((opcode&0x1e)==0x16) UNALLOCATED(ENC_UNALLOCATED_46_ASIMDSHF);
2003 if((opcode&0x1c)==0x18) UNALLOCATED(ENC_UNALLOCATED_47_ASIMDSHF);
2004 UNMATCHED;
2005}
2006
2007int decode_iclass_asimdtbl(context *ctx, Instruction *dec)
2008{

Callers 1

decode_specFunction · 0.85

Calls 15

SSHR_advsimdFunction · 0.85
SSRA_advsimdFunction · 0.85
SRSHR_advsimdFunction · 0.85
SRSRA_advsimdFunction · 0.85
SHL_advsimdFunction · 0.85
SQSHL_advsimd_immFunction · 0.85
SHRN_advsimdFunction · 0.85
RSHRN_advsimdFunction · 0.85
SQSHRN_advsimdFunction · 0.85
SQRSHRN_advsimdFunction · 0.85
SSHLL_advsimdFunction · 0.85
SCVTF_advsimd_fixFunction · 0.85

Tested by

no test coverage detected