// File: /workspace/github_c_makefile_star2_O0/markdryan[P]subtilis/arch/arm32/assembler.c
// Function: prv_parse_vfp_instruction
static void prv_parse_vfp_instruction(subtilis_arm_ass_context_t *c,
				      const char *name,
				      subtilis_arm_instr_type_t itype,
				      subtilis_arm_ccode_type_t ccode,
				      subtilis_error_t *err)
{
	switch (itype) {
	case SUBTILIS_VFP_INSTR_FCPYS:
	case SUBTILIS_VFP_INSTR_FCPYD:
	case SUBTILIS_VFP_INSTR_FNEGS:
	case SUBTILIS_VFP_INSTR_FNEGD:
	case SUBTILIS_VFP_INSTR_FABSS:
	case SUBTILIS_VFP_INSTR_FABSD:
		prv_parse_vfp_copy(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FSITOS:
	case SUBTILIS_VFP_INSTR_FSITOD:
	case SUBTILIS_VFP_INSTR_FTOSIS:
	case SUBTILIS_VFP_INSTR_FTOSID:
	case SUBTILIS_VFP_INSTR_FTOUIS:
	case SUBTILIS_VFP_INSTR_FTOUID:
	case SUBTILIS_VFP_INSTR_FTOSIZS:
	case SUBTILIS_VFP_INSTR_FTOSIZD:
	case SUBTILIS_VFP_INSTR_FTOUIZS:
	case SUBTILIS_VFP_INSTR_FTOUIZD:
	case SUBTILIS_VFP_INSTR_FUITOD:
	case SUBTILIS_VFP_INSTR_FUITOS:
		prv_parse_vfp_tran(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FMSR:
	case SUBTILIS_VFP_INSTR_FMRS:
		prv_parse_vfp_cptran(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FMACS:
	case SUBTILIS_VFP_INSTR_FMACD:
	case SUBTILIS_VFP_INSTR_FNMACS:
	case SUBTILIS_VFP_INSTR_FNMACD:
	case SUBTILIS_VFP_INSTR_FMSCS:
	case SUBTILIS_VFP_INSTR_FMSCD:
	case SUBTILIS_VFP_INSTR_FNMSCS:
	case SUBTILIS_VFP_INSTR_FNMSCD:
	case SUBTILIS_VFP_INSTR_FMULS:
	case SUBTILIS_VFP_INSTR_FMULD:
	case SUBTILIS_VFP_INSTR_FNMULS:
	case SUBTILIS_VFP_INSTR_FNMULD:
	case SUBTILIS_VFP_INSTR_FADDS:
	case SUBTILIS_VFP_INSTR_FADDD:
	case SUBTILIS_VFP_INSTR_FSUBS:
	case SUBTILIS_VFP_INSTR_FSUBD:
	case SUBTILIS_VFP_INSTR_FDIVS:
	case SUBTILIS_VFP_INSTR_FDIVD:
		prv_parse_vfp_data(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FCMPS:
	case SUBTILIS_VFP_INSTR_FCMPD:
	case SUBTILIS_VFP_INSTR_FCMPES:
	case SUBTILIS_VFP_INSTR_FCMPED:
	case SUBTILIS_VFP_INSTR_FCMPZS:
	case SUBTILIS_VFP_INSTR_FCMPZD:
	case SUBTILIS_VFP_INSTR_FCMPEZS:
	case SUBTILIS_VFP_INSTR_FCMPEZD:
		prv_parse_vfp_cmp(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FCVTDS:
	case SUBTILIS_VFP_INSTR_FCVTSD:
		prv_parse_vfp_cvt(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FSQRTD:
	case SUBTILIS_VFP_INSTR_FSQRTS:
		prv_parse_vfp_sqrt(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FMXR:
	case SUBTILIS_VFP_INSTR_FMRX:
		prv_parse_vfp_sysreg(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FMDRR:
	case SUBTILIS_VFP_INSTR_FMRRD:
	case SUBTILIS_VFP_INSTR_FMSRR:
	case SUBTILIS_VFP_INSTR_FMRRS:
		prv_parse_vfp_tran_dbl(c, name, itype, ccode, err);
		return;
	case SUBTILIS_VFP_INSTR_FSTS:
	case SUBTILIS_VFP_INSTR_FLDS:
	case SUBTILIS_VFP_INSTR_FSTD:
	case SUBTILIS_VFP_INSTR_FLDD:
		prv_parse_vfp_stran(c, name, itype, ccode, err);
		return;
	default:
		subtilis_error_set_assertion_failed(err);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
movl -0x14(%rbp), %eax
addl $-0x46, %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x3c, %eax
ja 0x94dfc
movq -0x28(%rbp), %rax
leaq 0x19286(%rip), %rcx     # 0xadf70
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x94e20
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x94f80
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x950e0
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x951a0
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x95340
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x955d0
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x95790
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x958c0
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x95a60
jmp 0x94e16
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
callq 0x96180
jmp 0x94e16
movq -0x20(%rbp), %rdi
movl $0xf, %esi
leaq 0x19314(%rip), %rdx     # 0xae120
movl $0xd7e, %ecx            # imm = 0xD7E
callq 0x158e0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)