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

Function FRINT64Z_float

arch/arm64/disassembler/decode2.c:10498–10525  ·  view source on GitHub ↗

frint64z_float.xml */

Source from the content-addressed store, hash-verified

10496
10497/* frint64z_float.xml */
10498int FRINT64Z_float(context *ctx, Instruction *instr)
10499{
10500 int rc = DECODE_STATUS_UNMATCHED;
10501 /* class iclass_float */
10502 /* M=0|0|S=0|11110|ftype=0x|1|0100|op=10|10000|Rn=xxxxx|Rd=xxxxx */
10503 if((INSWORD & 0xFFBFFC00)==0x1E294000) {
10504 decode_fields32(ENC_FRINT64Z_S_FLOATDP1, ctx, instr);
10505 if(!HaveFrintExt()) {
10506 UNDEFINED;
10507 }
10508 ctx->d = UINT(ctx->Rd);
10509 ctx->n = UINT(ctx->Rn);
10510 if(!ctx->ftype) {
10511 ctx->esize = 0x20;
10512 }
10513 else if(ctx->ftype==1) {
10514 ctx->esize = 0x40;
10515 }
10516 else if((ctx->ftype&2)==2) {
10517 UNDEFINED;
10518 }
10519 ctx->intsize = (SLICE(ctx->op,1,1)==0) ? 0x20 : 0x40;
10520 ctx->rounding = (SLICE(ctx->op,0,0)==0) ? FPRounding_ZERO : FPRoundingMode(ctx->FPCR);
10521 if(ctx->ftype==0) OK(ENC_FRINT64Z_S_FLOATDP1);
10522 if(ctx->ftype==1) OK(ENC_FRINT64Z_D_FLOATDP1);
10523 }
10524 return rc;
10525}
10526
10527/* frinta_advsimd.xml */
10528int FRINTA_advsimd(context *ctx, Instruction *instr)

Callers 1

decode_iclass_floatdp1Function · 0.85

Calls 2

decode_fields32Function · 0.85
FPRoundingModeFunction · 0.85

Tested by

no test coverage detected