	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_ada_evaluate_subexp            ## -- Begin function ada_evaluate_subexp
	.p2align	4, 0x90
_ada_evaluate_subexp:                   ## @ada_evaluate_subexp
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$40, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%ecx, -44(%rbp)                 ## 4-byte Spill
	movq	%rdx, %r8
	movq	%rsi, %rbx
	movq	%rdi, %r13
	movl	(%rdx), %edi
	movslq	%edi, %rdx
	leaq	1(%rdx), %r15
	movl	%r15d, (%r8)
	movq	(%rsi), %rax
	leaq	(%rdx,%rdx,2), %r12
	movl	(%rax,%r12,8), %r14d
	leal	-128(%r14), %edx
	cmpl	$21, %edx
	ja	LBB0_23
## %bb.1:
	leaq	LJTI0_0(%rip), %rsi
	movslq	(%rsi,%rdx,4), %rdx
	addq	%rsi, %rdx
	jmpq	*%rdx
LBB0_2:
	movq	_NULL_TYPE@GOTPCREL(%rip), %r15
	movq	(%r15), %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %r13d                ## 4-byte Reload
	movl	%r13d, %ecx
	movq	%r8, %r12
	callq	_evaluate_subexp
	movq	%rax, -56(%rbp)                 ## 8-byte Spill
	movq	(%r15), %rdi
	movq	%rbx, %rsi
	movq	%r12, %rdx
	movl	%r13d, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r15
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%r13d, (%rax)
	je	LBB0_145
## %bb.3:
	movl	%r14d, %edi
	movq	-56(%rbp), %rbx                 ## 8-byte Reload
	movq	%rbx, %rsi
	movq	%r15, %rdx
	callq	_binop_user_defined_p
	testl	%eax, %eax
	je	LBB0_70
## %bb.4:
	movq	_OP_NULL@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	_EVAL_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	%rbx, %rdi
	movq	%r15, %rsi
	movl	%r14d, %edx
	jmp	LBB0_55
LBB0_5:
	movq	_NULL_TYPE@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %ebx                 ## 4-byte Reload
	movl	%ebx, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r13
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%ebx, (%rax)
	je	LBB0_145
## %bb.6:
	movl	$128, %edi
	movq	%r13, %rsi
	callq	_unop_user_defined_p
	testl	%eax, %eax
	je	LBB0_162
## %bb.7:
	movq	_EVAL_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%r13, %rdi
	movl	$128, %esi
	callq	_value_x_unop
	jmp	LBB0_92
LBB0_8:
	movq	_NULL_TYPE@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %ebx                 ## 4-byte Reload
	movl	%ebx, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r15
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%ebx, (%rax)
	je	LBB0_145
## %bb.9:
	movl	$129, %edi
	movq	%r15, %rsi
	callq	_unop_user_defined_p
	testl	%eax, %eax
	je	LBB0_95
## %bb.10:
	movq	_EVAL_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%r15, %rdi
	movl	$129, %esi
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_x_unop                   ## TAILCALL
LBB0_11:
	testq	%r13, %r13
	je	LBB0_79
## %bb.12:
	movq	%r8, %r14
	movq	%r13, %rdi
	callq	_TYPE_CODE
	cmpl	$134, %eax
	jne	LBB0_14
## %bb.13:
	movq	%r13, %rdi
	callq	_check_typedef
	movq	%rax, %rdi
	callq	_TYPE_TARGET_TYPE
	movq	%rax, %r13
LBB0_14:
	movq	%r14, %r8
	jmp	LBB0_80
LBB0_15:
	addl	$3, %edi
	movl	%edi, (%r8)
	leaq	(%r15,%r15,2), %rcx
	movq	16(%rax,%rcx,8), %r15
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %ebx                 ## 4-byte Reload
	movl	%ebx, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r13
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%ebx, (%rax)
	je	LBB0_145
## %bb.16:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	cmpq	%rax, %r15
	je	LBB0_162
## %bb.17:
	movq	%r15, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_115
## %bb.18:
	movq	%r15, %rdi
	movq	%r13, %rsi
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_cast_to_fixed                  ## TAILCALL
LBB0_19:
	movq	_NULL_TYPE@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %ebx                 ## 4-byte Reload
	movl	%ebx, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r13
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%ebx, (%rax)
	je	LBB0_145
## %bb.20:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	_not_lval@GOTPCREL(%rip), %rcx
	movl	(%rcx), %esi
	movq	%rax, %rdi
	callq	_value_zero
	movq	%r13, %rdi
	movq	%rax, %rsi
	callq	_value_less
	testl	%eax, %eax
	je	LBB0_162
## %bb.21:
	movq	%r13, %rdi
LBB0_22:
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_neg                      ## TAILCALL
LBB0_23:
	movl	%edi, (%r8)
	movq	%r13, %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	callq	_evaluate_subexp_standard
	jmp	LBB0_92
LBB0_24:
	movslq	%r15d, %rcx
	leaq	(%rcx,%rcx,2), %rcx
	movl	8(%rax,%rcx,8), %edi
	movq	%rbx, %r15
	movq	%r8, %rbx
	callq	_longest_to_int
                                        ## kill: def $eax killed $eax def $rax
	leal	1(%rax), %edi
	callq	_BYTES_TO_EXP_ELEM
                                        ## kill: def $eax killed $eax def $rax
	movl	(%rbx), %ecx
	addl	%ecx, %eax
	addl	$3, %eax
	movl	%eax, (%rbx)
	movq	_NULL_TYPE@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movq	%r15, %r14
	movq	%r15, %rsi
	movq	%rbx, %rdx
	movl	-44(%rbp), %ebx                 ## 4-byte Reload
	movl	%ebx, %ecx
	callq	_evaluate_subexp
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rcx
	cmpl	%ebx, (%rcx)
	je	LBB0_145
## %bb.25:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rcx
	cmpl	%ebx, (%rcx)
	je	LBB0_89
## %bb.26:
	movq	(%r14), %rcx
	leaq	(%rcx,%r12,8), %rsi
	addq	$52, %rsi
	leaq	L_.str.10(%rip), %rdx
	jmp	LBB0_91
LBB0_27:
	movl	%edi, (%r8)
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rdx
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rdx)
	jne	LBB0_56
## %bb.28:
	addl	$4, %edi
	movl	%edi, (%r8)
	jmp	LBB0_145
LBB0_29:
	addl	$3, %edi
	movl	%edi, (%r8)
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	je	LBB0_145
## %bb.30:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	cmpl	%ecx, (%rax)
	jne	LBB0_86
## %bb.31:
	movq	_builtin_type_void@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	jmp	LBB0_175
LBB0_32:
	movq	%rbx, -72(%rbp)                 ## 8-byte Spill
	addl	$3, %edi
	movq	%r8, -64(%rbp)                  ## 8-byte Spill
	movl	%edi, (%r8)
	movslq	%r15d, %rcx
	leaq	(%rcx,%rcx,2), %rcx
	movl	8(%rax,%rcx,8), %edi
	callq	_longest_to_int
	movl	%eax, %r12d
	leal	16(,%r12,8), %edi
	callq	_alloca
	movq	%rax, %r13
	testl	%r12d, %r12d
	js	LBB0_59
## %bb.33:
	movq	%r12, -80(%rbp)                 ## 8-byte Spill
	leal	1(%r12), %r14d
	xorl	%ebx, %ebx
	movq	%r13, -56(%rbp)                 ## 8-byte Spill
	movl	-44(%rbp), %r13d                ## 4-byte Reload
	movq	-72(%rbp), %r12                 ## 8-byte Reload
	movq	-64(%rbp), %r15                 ## 8-byte Reload
	.p2align	4, 0x90
LBB0_34:                                ## =>This Inner Loop Header: Depth=1
	movq	_NULL_TYPE@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rdi
	movq	%r12, %rsi
	movq	%r15, %rdx
	movl	%r13d, %ecx
	callq	_evaluate_subexp
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	movq	%rax, (%rcx,%rbx,8)
	incq	%rbx
	cmpq	%rbx, %r14
	jne	LBB0_34
## %bb.35:
	movq	-80(%rbp), %r12                 ## 8-byte Reload
	movq	-56(%rbp), %r13                 ## 8-byte Reload
	jmp	LBB0_60
LBB0_36:
	addl	$4, %edi
	movq	%r8, -64(%rbp)                  ## 8-byte Spill
	movl	%edi, (%r8)
	movslq	%r15d, %rcx
	leaq	(%rcx,%rcx,2), %rcx
	movl	8(%rax,%rcx,8), %edi
	callq	_longest_to_int
	movl	%eax, %r14d
	movq	%rbx, -72(%rbp)                 ## 8-byte Spill
	movq	(%rbx), %rax
	movl	56(%rax,%r12,8), %edi
	callq	_longest_to_int
	movl	%eax, -80(%rbp)                 ## 4-byte Spill
	movl	%eax, %r15d
	movl	%r14d, -56(%rbp)                ## 4-byte Spill
	subl	%r14d, %r15d
	testq	%r13, %r13
	je	LBB0_38
## %bb.37:
	movq	%r13, %rdi
	callq	_check_typedef
LBB0_38:
	leal	16(,%r15,8), %edi
	callq	_alloca
	movq	%rax, %rdx
	xorl	%ebx, %ebx
	testl	%r15d, %r15d
	cmovlel	%ebx, %r15d
	incl	%r15d
	movq	-72(%rbp), %r12                 ## 8-byte Reload
	movq	-64(%rbp), %r14                 ## 8-byte Reload
	.p2align	4, 0x90
LBB0_39:                                ## =>This Inner Loop Header: Depth=1
	movq	%r12, %rdi
	movq	%r14, %rsi
	movq	%r15, %r13
	movq	%rdx, %r15
	movl	-44(%rbp), %edx                 ## 4-byte Reload
	callq	_evaluate_subexp_with_coercion
	movq	%r15, %rdx
	movq	%r13, %r15
	movq	%rax, (%rdx,%rbx,8)
	incq	%rbx
	cmpq	%rbx, %r13
	jne	LBB0_39
## %bb.40:
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	je	LBB0_145
## %bb.41:
	movl	-56(%rbp), %edi                 ## 4-byte Reload
	movl	-80(%rbp), %esi                 ## 4-byte Reload
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_array                    ## TAILCALL
LBB0_42:
	movq	%rbx, %rdi
	movq	%r8, %rsi
	movl	-44(%rbp), %r14d                ## 4-byte Reload
	movl	%r14d, %edx
	movq	%r8, %r15
	callq	_evaluate_subexp_with_coercion
	movq	%rax, %r13
	movq	%rbx, %rdi
	movq	%r15, %rsi
	movl	%r14d, %edx
	callq	_evaluate_subexp_with_coercion
	movq	%rax, %r15
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%r14d, (%rax)
	je	LBB0_145
## %bb.43:
	movl	$144, %edi
	movq	%r13, %rsi
	movq	%r15, %rdx
	callq	_binop_user_defined_p
	testl	%eax, %eax
	je	LBB0_97
## %bb.44:
	movq	_OP_NULL@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	_EVAL_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	%r13, %rdi
	movq	%r15, %rsi
	movl	$144, %edx
	jmp	LBB0_55
LBB0_45:
	movq	_NULL_TYPE@GOTPCREL(%rip), %r14
	movq	(%r14), %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %r15d                ## 4-byte Reload
	movl	%r15d, %ecx
	movq	%r8, %r12
	callq	_evaluate_subexp
	movq	%rax, %r13
	movq	(%r14), %rdi
	movq	%rbx, %rsi
	movq	%r12, %rdx
	movl	%r15d, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r14
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%r15d, (%rax)
	je	LBB0_145
## %bb.46:
	movl	$146, %edi
	movq	%r13, %rsi
	movq	%r14, %rdx
	callq	_binop_user_defined_p
	testl	%eax, %eax
	je	LBB0_102
## %bb.47:
	movq	_OP_NULL@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	_EVAL_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	%r13, %rdi
	movq	%r14, %rsi
	movl	$146, %edx
	callq	_value_x_binop
	jmp	LBB0_92
LBB0_48:
	movq	_NULL_TYPE@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %r15d                ## 4-byte Reload
	movl	%r15d, %ecx
	movq	%r8, %r14
	callq	_evaluate_subexp
	movq	%rax, %r13
	movq	%rax, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	movq	%rbx, %rsi
	movq	%r14, %rdx
	movl	%r15d, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r14
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%r15d, (%rax)
	je	LBB0_162
## %bb.49:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	cmpl	%r15d, (%rax)
	je	LBB0_162
## %bb.50:
	movl	$148, %edi
	movq	%r13, %rsi
	movq	%r14, %rdx
	callq	_binop_user_defined_p
	testl	%eax, %eax
	je	LBB0_104
## %bb.51:
	movq	_OP_NULL@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	_EVAL_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	%r13, %rdi
	movq	%r14, %rsi
	movl	$148, %edx
	jmp	LBB0_55
LBB0_52:
	movq	%rbx, %rdi
	movq	%r8, %rsi
	movl	-44(%rbp), %r14d                ## 4-byte Reload
	movl	%r14d, %edx
	movq	%r8, %r15
	callq	_evaluate_subexp_with_coercion
	movq	%rax, %r13
	movq	%rbx, %rdi
	movq	%r15, %rsi
	movl	%r14d, %edx
	callq	_evaluate_subexp_with_coercion
	movq	%rax, %r15
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%r14d, (%rax)
	je	LBB0_145
## %bb.53:
	movl	$149, %edi
	movq	%r13, %rsi
	movq	%r15, %rdx
	callq	_binop_user_defined_p
	testl	%eax, %eax
	je	LBB0_107
## %bb.54:
	movq	_OP_NULL@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	_EVAL_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	%r13, %rdi
	movq	%r15, %rsi
	movl	$149, %edx
LBB0_55:
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_x_binop                  ## TAILCALL
LBB0_56:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rdx
	cmpl	%ecx, (%rdx)
	jne	LBB0_93
## %bb.57:
	addl	$4, %edi
	movl	%edi, (%r8)
	movl	60(%rax,%r12,8), %edi
	callq	_SYMBOL_TYPE
	movl	%eax, %edi
	callq	_static_unwrap_type
	movq	%rax, %rdi
LBB0_58:
	callq	_to_static_fixed_type
	jmp	LBB0_119
LBB0_59:
	xorl	%r14d, %r14d
LBB0_60:
	movl	%r14d, %eax
	movq	$0, (%r13,%rax,8)
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	je	LBB0_145
## %bb.61:
	movq	(%r13), %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_TYPE_CODE
	movq	_TYPE_CODE_REF@GOTPCREL(%rip), %rcx
	movq	(%r13), %rdi
	cmpl	(%rcx), %eax
	jne	LBB0_63
## %bb.62:
	callq	_value_addr
	movq	%rax, %rdi
	movq	%rax, (%r13)
LBB0_63:
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_packed_array_type
	movq	(%r13), %rdi
	testl	%eax, %eax
	je	LBB0_65
## %bb.64:
	callq	_ada_coerce_to_simple_array
	movq	%rax, %rdi
	movq	%rax, (%r13)
LBB0_65:
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %rbx
	movq	%rax, %rdi
	callq	_TYPE_CODE
	cmpl	$134, %eax
	jne	LBB0_135
## %bb.66:
	movq	%rbx, %rdi
	callq	_TYPE_TARGET_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %rdi
	callq	_TYPE_CODE
	cmpl	$133, %eax
	je	LBB0_132
## %bb.67:
	cmpl	$136, %eax
	je	LBB0_135
## %bb.68:
	cmpl	$135, %eax
	je	LBB0_134
## %bb.69:
	movq	(%r13), %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_type_name
	leaq	L_.str.3(%rip), %rdi
	movl	%eax, %esi
	xorl	%eax, %eax
	callq	_error
	jmp	LBB0_135
LBB0_70:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	jne	LBB0_74
## %bb.71:
	cmpl	$147, %r14d
	je	LBB0_117
## %bb.72:
	movq	_BINOP_REM@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r14d
	je	LBB0_117
## %bb.73:
	movq	_BINOP_MOD@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r14d
	je	LBB0_117
LBB0_74:
	movq	%rbx, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_76
## %bb.75:
	movq	%rbx, %rdi
	callq	_cast_from_fixed_to_double
	movq	%rax, %rbx
LBB0_76:
	movq	%r15, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_78
## %bb.77:
	movq	%r15, %rdi
	callq	_cast_from_fixed_to_double
	movq	%rax, %r15
LBB0_78:
	movq	%rbx, %rdi
	movq	%r15, %rsi
	movl	%r14d, %edx
	jmp	LBB0_127
LBB0_79:
	xorl	%r13d, %r13d
LBB0_80:
	movq	%r13, %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %ebx                 ## 4-byte Reload
	movl	%ebx, %ecx
	callq	_evaluate_subexp
	movq	%rax, %r14
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%ebx, (%rax)
	je	LBB0_145
## %bb.81:
	movq	%r14, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %r15
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	cmpl	%ebx, (%rax)
	jne	LBB0_190
## %bb.82:
	movq	%r15, %rdi
	callq	_ada_is_array_descriptor
	testl	%eax, %eax
	je	LBB0_122
## %bb.83:
	movq	%r14, %rdi
	xorl	%esi, %esi
	callq	_ada_type_of_array
	movq	%rax, %rbx
	testq	%rax, %rax
	jne	LBB0_85
## %bb.84:
	leaq	L_.str.8(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
LBB0_85:
	movq	%rbx, %rdi
	xorl	%esi, %esi
	xorl	%edx, %edx
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_at_lazy                  ## TAILCALL
LBB0_86:
	leaq	L_.str.11(%rip), %rdi
	xorl	%eax, %eax
	movq	%r8, %r14
	callq	_error
	movq	%r14, %r8
	movq	(%rbx), %rax
LBB0_87:
	movslq	%r15d, %rcx
	leaq	(%rcx,%rcx,2), %rcx
	movl	8(%rax,%rcx,8), %edi
	movq	%rbx, %r15
	movq	%r8, %rbx
	callq	_longest_to_int
                                        ## kill: def $eax killed $eax def $rax
	leal	1(%rax), %edi
	callq	_BYTES_TO_EXP_ELEM
                                        ## kill: def $eax killed $eax def $rax
	movl	(%rbx), %ecx
	addl	%ecx, %eax
	addl	$3, %eax
	movl	%eax, (%rbx)
	movq	_NULL_TYPE@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movq	%r15, %r14
	movq	%r15, %rsi
	movq	%rbx, %rdx
	movl	-44(%rbp), %ebx                 ## 4-byte Reload
	movl	%ebx, %ecx
	callq	_evaluate_subexp
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rcx
	cmpl	%ebx, (%rcx)
	je	LBB0_145
## %bb.88:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rcx
	cmpl	%ebx, (%rcx)
	jne	LBB0_90
LBB0_89:
	movq	%rax, %rdi
	callq	_VALUE_TYPE
	movq	(%r14), %rcx
	leaq	(%rcx,%r12,8), %rsi
	addq	$52, %rsi
	movq	%rax, %rdi
	xorl	%edx, %edx
	xorl	%ecx, %ecx
	callq	_ada_lookup_struct_elt_type
	movq	%rax, %rdi
	callq	_ada_aligned_type
	movq	_lval_memory@GOTPCREL(%rip), %rcx
	jmp	LBB0_120
LBB0_90:
	movq	(%r14), %rcx
	leaq	(%rcx,%r12,8), %rsi
	addq	$52, %rsi
	leaq	L_.str.12(%rip), %rdx
LBB0_91:
	movq	%rax, %rdi
	callq	_ada_value_struct_elt
LBB0_92:
	movq	%rax, %rdi
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_unwrap_value                   ## TAILCALL
LBB0_93:
	movq	%r13, %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	callq	_evaluate_subexp_standard
	movq	%rax, %rdi
	callq	_unwrap_value
	movq	%rax, %r15
	movq	%rax, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %r14
	movq	%r15, %rdi
	callq	_VALUE_ADDRESS
	movq	%rax, %rbx
	movq	%r15, %rdi
	callq	_VALUE_OFFSET
	addq	%rax, %rbx
	movq	%r14, %rdi
	xorl	%esi, %esi
	movq	%rbx, %rdx
	movq	%r15, %rcx
LBB0_94:
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_ada_to_fixed_value             ## TAILCALL
LBB0_95:
	movq	%r15, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_128
## %bb.96:
	movq	%r15, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %r14
	movq	%r15, %rdi
	callq	_value_neg
	jmp	LBB0_112
LBB0_97:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	jne	LBB0_99
## %bb.98:
	movq	%r15, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_101
LBB0_99:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %r14
	movq	%r15, %rdi
	callq	_VALUE_TYPE
	cmpq	%rax, %r14
	je	LBB0_101
## %bb.100:
	leaq	L_.str.2(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
LBB0_101:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %r14
	movq	%r13, %rdi
	movq	%r15, %rsi
	callq	_value_sub
	jmp	LBB0_112
LBB0_102:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	jne	LBB0_126
## %bb.103:
	movq	%r13, %rdi
	jmp	LBB0_118
LBB0_104:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_129
## %bb.105:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	movq	%r14, %rsi
	callq	_cast_to_fixed
LBB0_106:
	movq	%rax, %r14
	jmp	LBB0_131
LBB0_107:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	jne	LBB0_109
## %bb.108:
	movq	%r15, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_111
LBB0_109:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %r14
	movq	%r15, %rdi
	callq	_VALUE_TYPE
	cmpq	%rax, %r14
	je	LBB0_111
## %bb.110:
	leaq	L_.str.1(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
LBB0_111:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %r14
	movq	%r13, %rdi
	movq	%r15, %rsi
	callq	_value_add
LBB0_112:
	movq	%r14, %rdi
LBB0_113:
	movq	%rax, %rsi
LBB0_114:
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_cast                     ## TAILCALL
LBB0_115:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_178
## %bb.116:
	movq	%r13, %rdi
	callq	_cast_from_fixed_to_double
	movq	%r15, %rdi
	jmp	LBB0_113
LBB0_117:
	movq	%rbx, %rdi
LBB0_118:
	callq	_VALUE_TYPE
LBB0_119:
	movq	_not_lval@GOTPCREL(%rip), %rcx
LBB0_120:
	movl	(%rcx), %esi
	movq	%rax, %rdi
LBB0_121:
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_zero                     ## TAILCALL
LBB0_122:
	movq	%r15, %rdi
	callq	_TYPE_CODE
	cmpl	$134, %eax
	je	LBB0_125
## %bb.123:
	movq	%r15, %rdi
	callq	_TYPE_CODE
	movq	_TYPE_CODE_REF@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	je	LBB0_125
## %bb.124:
	movq	%r15, %rdi
	callq	_TYPE_CODE
	cmpl	$136, %eax
	jne	LBB0_186
LBB0_125:
	movq	%r15, %rdi
	callq	_TYPE_TARGET_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %rdi
	callq	_ada_aligned_type
	movq	%rax, %rdi
	callq	_to_static_fixed_type
	movq	_lval_memory@GOTPCREL(%rip), %rcx
	jmp	LBB0_120
LBB0_126:
	movq	%r13, %rdi
	movq	%r14, %rsi
	movl	$146, %edx
LBB0_127:
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_binop                    ## TAILCALL
LBB0_128:
	movq	%r15, %rdi
	jmp	LBB0_22
LBB0_129:
	movq	%r14, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_fixed_point_type
	testl	%eax, %eax
	je	LBB0_181
## %bb.130:
	leaq	L_.str(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
LBB0_131:
	movq	%r13, %rdi
	movq	%r14, %rsi
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_ada_value_assign               ## TAILCALL
LBB0_132:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	je	LBB0_134
## %bb.133:
	movq	(%r13), %rdi
	callq	_ada_value_ind
	movq	%rax, (%r13)
LBB0_134:
	movq	%rbx, %rdi
	callq	_TYPE_TARGET_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %rbx
LBB0_135:
	movq	%rbx, %rdi
	callq	_TYPE_CODE
                                        ## kill: def $eax killed $eax def $rax
	addl	$-133, %eax
	cmpl	$3, %eax
	ja	LBB0_143
## %bb.136:
	leaq	LJTI0_1(%rip), %rcx
	movslq	(%rcx,%rax,4), %rax
	addq	%rcx, %rax
	jmpq	*%rax
LBB0_137:
	movq	%rbx, %rdi
	callq	_ada_array_arity
	movl	%eax, %r15d
	movq	%rbx, %rdi
	movl	%r12d, %esi
	callq	_ada_array_element_type
	movq	%rax, %rbx
	testq	%rax, %rax
	jne	LBB0_139
## %bb.138:
	leaq	L_.str.4(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
LBB0_139:
	cmpl	%r12d, %r15d
	je	LBB0_141
## %bb.140:
	leaq	L_.str.5(%rip), %rdi
	movl	%r15d, %esi
	xorl	%eax, %eax
	callq	_error
LBB0_141:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	jne	LBB0_176
## %bb.142:
	movq	%rbx, %rdi
	jmp	LBB0_173
LBB0_143:
	leaq	L_.str.7(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
	movq	-72(%rbp), %rbx                 ## 8-byte Reload
	movq	-64(%rbp), %r8                  ## 8-byte Reload
LBB0_144:
	movq	_NULL_TYPE@GOTPCREL(%rip), %r14
	movq	(%r14), %rdi
	movq	%rbx, %rsi
	movq	%r8, %rdx
	movl	-44(%rbp), %r15d                ## 4-byte Reload
	movl	%r15d, %ecx
	movq	%r8, %r12
	callq	_evaluate_subexp
	movq	%rax, %r13
	movq	(%r14), %rdi
	movq	%rbx, %rsi
	movq	%r12, %rdx
	movl	%r15d, %ecx
	callq	_evaluate_subexp
	movq	%rax, %rdi
	callq	_value_as_long
	movl	%eax, -56(%rbp)                 ## 4-byte Spill
	movq	(%r14), %rdi
	movq	%rbx, %rsi
	movq	%r12, %rdx
	movl	%r15d, %ecx
	callq	_evaluate_subexp
	movq	%rax, %rdi
	callq	_value_as_long
	movl	%eax, %ebx
	movq	_EVAL_SKIP@GOTPCREL(%rip), %rax
	cmpl	%r15d, (%rax)
	jne	LBB0_146
LBB0_145:
	movq	_builtin_type_long@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	$1, %esi
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_from_longest             ## TAILCALL
LBB0_146:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_TYPE_CODE
	movq	_TYPE_CODE_REF@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_151
## %bb.147:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_TYPE_TARGET_TYPE
	testq	%rax, %rax
	je	LBB0_151
## %bb.148:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_TYPE_TARGET_TYPE
	movq	%rax, %rdi
	callq	_TYPE_CODE
	cmpl	$136, %eax
	jne	LBB0_151
## %bb.149:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %rdi
	callq	_ada_is_array_descriptor
	testl	%eax, %eax
	jne	LBB0_151
## %bb.150:
	movq	%r13, %rdi
	callq	_ada_coerce_ref
	movq	%rax, %r13
LBB0_151:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %r14
	movl	-44(%rbp), %eax                 ## 4-byte Reload
	cmpl	%eax, (%r14)
	jne	LBB0_155
## %bb.152:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %rdi
	callq	_ada_is_array_descriptor
	testl	%eax, %eax
	je	LBB0_155
## %bb.153:
	movq	%r13, %rdi
	xorl	%esi, %esi
	callq	_ada_type_of_array
	testq	%rax, %rax
	je	LBB0_155
## %bb.154:
	movq	%rax, %rdi
	xorl	%esi, %esi
	xorl	%edx, %edx
	callq	_value_at_lazy
	movq	%rax, %r13
LBB0_155:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_ada_is_array_descriptor
	testl	%eax, %eax
	je	LBB0_157
## %bb.156:
	movq	%r13, %rdi
	callq	_ada_coerce_to_simple_array
	movq	%rax, %r13
LBB0_157:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_TYPE_CODE
	cmpl	$134, %eax
	jne	LBB0_161
## %bb.158:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_TYPE_TARGET_TYPE
	testq	%rax, %rax
	je	LBB0_161
## %bb.159:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_TYPE_TARGET_TYPE
	movq	%rax, %rdi
	callq	_TYPE_CODE
	cmpl	$136, %eax
	jne	LBB0_161
## %bb.160:
	movq	%r13, %rdi
	callq	_ada_value_ind
	movq	%rax, %r13
LBB0_161:
	movl	-44(%rbp), %eax                 ## 4-byte Reload
	cmpl	%eax, (%r14)
	jne	LBB0_163
LBB0_162:
	movq	%r13, %rax
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_163:
	movl	-56(%rbp), %esi                 ## 4-byte Reload
	subl	%esi, %ebx
	incl	%ebx
	movq	%r13, %rdi
	movl	%ebx, %edx
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_value_slice                    ## TAILCALL
LBB0_164:
	movq	%rbx, %rdi
	callq	_TYPE_TARGET_TYPE
	movq	%rax, %rdi
	xorl	%esi, %esi
	movl	$1, %edx
	callq	_to_fixed_array_type
	movq	%rax, %rbx
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	jne	LBB0_167
## %bb.165:
	movq	%rbx, %rdi
	movl	%r12d, %esi
	callq	_ada_array_element_type
	testq	%rax, %rax
	jne	LBB0_172
## %bb.166:
	leaq	L_.str.6(%rip), %rdi
	xorl	%ebx, %ebx
	xorl	%eax, %eax
	callq	_error
LBB0_167:
	movq	(%r13), %rdi
	addq	$8, %r13
	movq	%rbx, %rsi
	movl	%r12d, %edx
	movq	%r13, %rcx
	callq	_ada_value_ptr_subscript
	jmp	LBB0_92
LBB0_168:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	jne	LBB0_177
## %bb.169:
	movq	%rbx, %rdi
	callq	_TYPE_TARGET_TYPE
	jmp	LBB0_174
LBB0_170:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	jne	LBB0_184
## %bb.171:
	movq	%rbx, %rdi
	movl	%r12d, %esi
	callq	_ada_array_element_type
	testq	%rax, %rax
	je	LBB0_183
LBB0_172:
	movq	%rax, %rdi
LBB0_173:
	callq	_ada_aligned_type
LBB0_174:
	movq	%rax, %rdi
LBB0_175:
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_allocate_value                 ## TAILCALL
LBB0_176:
	movq	(%r13), %rdi
	addq	$8, %r13
	jmp	LBB0_185
LBB0_177:
	movq	(%r13), %rdi
	addq	$8, %r13
	movl	%r12d, %esi
	movq	%r13, %rdx
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_call_function_by_hand          ## TAILCALL
LBB0_178:
	movq	%r13, %rdi
	callq	_VALUE_LVAL
	movq	_lval_memory@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_182
## %bb.179:
	movq	_EVAL_AVOID_SIDE_EFFECTS@GOTPCREL(%rip), %rax
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	cmpl	%ecx, (%rax)
	jne	LBB0_188
## %bb.180:
	movq	%r15, %rdi
	jmp	LBB0_58
LBB0_181:
	movq	%r13, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	movq	%r14, %rsi
	callq	_coerce_for_assign
	jmp	LBB0_106
LBB0_182:
	movq	%r15, %rdi
	movq	%r13, %rsi
	jmp	LBB0_114
LBB0_183:
	leaq	L_.str.6(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
LBB0_184:
	movq	(%r13), %rdi
	callq	_ada_coerce_to_simple_array
	addq	$8, %r13
	movq	%rax, %rdi
LBB0_185:
	movl	%r12d, %esi
	movq	%r13, %rdx
	callq	_ada_value_subscript
	jmp	LBB0_92
LBB0_186:
	movq	%r15, %rdi
	callq	_TYPE_CODE
	movq	_TYPE_CODE_INT@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_189
## %bb.187:
	movq	_builtin_type_int@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movq	_lval_memory@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	jmp	LBB0_121
LBB0_188:
	movq	%r13, %rdi
	callq	_VALUE_ADDRESS
	movq	%rax, %r14
	movq	%r13, %rdi
	callq	_VALUE_OFFSET
	addq	%rax, %r14
	movq	%r15, %rdi
	xorl	%esi, %esi
	movq	%r14, %rdx
	xorl	%ecx, %ecx
	jmp	LBB0_94
LBB0_189:
	leaq	L_.str.9(%rip), %rdi
	xorl	%eax, %eax
	callq	_error
LBB0_190:
	movq	%r14, %rdi
	callq	_ada_coerce_ref
	movq	%rax, %rbx
	movq	%rax, %rdi
	callq	_VALUE_TYPE
	movq	%rax, %rdi
	callq	_check_typedef
	movq	%rax, %rdi
	callq	_ada_is_array_descriptor
	movq	%rbx, %rdi
	addq	$40, %rsp
	testl	%eax, %eax
	je	LBB0_192
## %bb.191:
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_ada_coerce_to_simple_array     ## TAILCALL
LBB0_192:
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_ada_value_ind                  ## TAILCALL
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_5, LBB0_5-LJTI0_0
.set L0_0_set_8, LBB0_8-LJTI0_0
.set L0_0_set_11, LBB0_11-LJTI0_0
.set L0_0_set_15, LBB0_15-LJTI0_0
.set L0_0_set_19, LBB0_19-LJTI0_0
.set L0_0_set_23, LBB0_23-LJTI0_0
.set L0_0_set_144, LBB0_144-LJTI0_0
.set L0_0_set_24, LBB0_24-LJTI0_0
.set L0_0_set_87, LBB0_87-LJTI0_0
.set L0_0_set_27, LBB0_27-LJTI0_0
.set L0_0_set_29, LBB0_29-LJTI0_0
.set L0_0_set_32, LBB0_32-LJTI0_0
.set L0_0_set_36, LBB0_36-LJTI0_0
.set L0_0_set_42, LBB0_42-LJTI0_0
.set L0_0_set_2, LBB0_2-LJTI0_0
.set L0_0_set_45, LBB0_45-LJTI0_0
.set L0_0_set_48, LBB0_48-LJTI0_0
.set L0_0_set_52, LBB0_52-LJTI0_0
LJTI0_0:
	.long	L0_0_set_5
	.long	L0_0_set_8
	.long	L0_0_set_11
	.long	L0_0_set_15
	.long	L0_0_set_19
	.long	L0_0_set_23
	.long	L0_0_set_23
	.long	L0_0_set_23
	.long	L0_0_set_23
	.long	L0_0_set_144
	.long	L0_0_set_24
	.long	L0_0_set_87
	.long	L0_0_set_27
	.long	L0_0_set_29
	.long	L0_0_set_32
	.long	L0_0_set_36
	.long	L0_0_set_42
	.long	L0_0_set_2
	.long	L0_0_set_45
	.long	L0_0_set_2
	.long	L0_0_set_48
	.long	L0_0_set_52
.set L0_1_set_137, LBB0_137-LJTI0_1
.set L0_1_set_164, LBB0_164-LJTI0_1
.set L0_1_set_168, LBB0_168-LJTI0_1
.set L0_1_set_170, LBB0_170-LJTI0_1
LJTI0_1:
	.long	L0_1_set_137
	.long	L0_1_set_164
	.long	L0_1_set_168
	.long	L0_1_set_170
	.end_data_region
                                        ## -- End function
	.comm	_EVAL_SKIP,4,2                  ## @EVAL_SKIP
	.comm	_lval_memory,4,2                ## @lval_memory
	.comm	_EVAL_AVOID_SIDE_EFFECTS,4,2    ## @EVAL_AVOID_SIDE_EFFECTS
	.comm	_not_lval,4,2                   ## @not_lval
	.comm	_NULL_TYPE,8,3                  ## @NULL_TYPE
	.comm	_OP_NULL,4,2                    ## @OP_NULL
	.comm	_EVAL_NORMAL,4,2                ## @EVAL_NORMAL
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Fixed-point values must be assigned to fixed-point variables"

L_.str.1:                               ## @.str.1
	.asciz	"Operands of fixed-point addition must have the same type"

L_.str.2:                               ## @.str.2
	.asciz	"Operands of fixed-point subtraction must have the same type"

	.comm	_BINOP_REM,4,2                  ## @BINOP_REM
	.comm	_BINOP_MOD,4,2                  ## @BINOP_MOD
	.comm	_TYPE_CODE_REF,4,2              ## @TYPE_CODE_REF
L_.str.3:                               ## @.str.3
	.asciz	"cannot subscript or call something of type `%s'"

L_.str.4:                               ## @.str.4
	.asciz	"cannot subscript or call a record"

L_.str.5:                               ## @.str.5
	.asciz	"wrong number of subscripts; expecting %d"

L_.str.6:                               ## @.str.6
	.asciz	"element type of array unknown"

L_.str.7:                               ## @.str.7
	.asciz	"Internal error in evaluate_subexp"

L_.str.8:                               ## @.str.8
	.asciz	"Attempt to dereference null array pointer."

	.comm	_TYPE_CODE_INT,4,2              ## @TYPE_CODE_INT
	.comm	_builtin_type_int,8,3           ## @builtin_type_int
L_.str.9:                               ## @.str.9
	.asciz	"Attempt to take contents of a non-pointer value."

L_.str.10:                              ## @.str.10
	.asciz	"record"

	.comm	_builtin_type_void,8,3          ## @builtin_type_void
L_.str.11:                              ## @.str.11
	.asciz	"Attempt to use a type name as an expression"

L_.str.12:                              ## @.str.12
	.asciz	"record access"

	.comm	_builtin_type_long,4,2          ## @builtin_type_long
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_ada_evaluate_subexp            ; -- Begin function ada_evaluate_subexp
	.p2align	2
_ada_evaluate_subexp:                   ; @ada_evaluate_subexp
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #112
	.cfi_def_cfa_offset 112
	stp	x28, x27, [sp, #16]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #32]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #48]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #64]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #80]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #96]             ; 16-byte Folded Spill
	add	x29, sp, #96
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	mov	x19, x3
	mov	x21, x2
	mov	x20, x1
	mov	x23, x0
	ldrsw	x24, [x2]
	add	w25, w24, #1
	str	w25, [x2]
	ldr	x8, [x1]
	mov	w9, #24
	mul	x9, x24, x9
	ldr	w22, [x8, x9]
	sub	w9, w22, #128
	cmp	w9, #21
	b.hi	LBB0_28
; %bb.1:
Lloh0:
	adrp	x10, lJTI0_0@PAGE
Lloh1:
	add	x10, x10, lJTI0_0@PAGEOFF
	adr	x11, LBB0_2
	ldrh	w12, [x10, x9, lsl #1]
	add	x11, x11, x12, lsl #2
	br	x11
LBB0_2:
Lloh2:
	adrp	x24, _NULL_TYPE@GOTPAGE
Lloh3:
	ldr	x24, [x24, _NULL_TYPE@GOTPAGEOFF]
	ldr	x0, [x24]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
	mov	x23, x0
	ldr	x0, [x24]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh4:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh5:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh6:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.3:
	mov	x20, x0
	mov	x0, x22
	mov	x1, x23
	mov	x2, x20
	bl	_binop_user_defined_p
	cbz	w0, LBB0_73
; %bb.4:
Lloh7:
	adrp	x8, _OP_NULL@GOTPAGE
Lloh8:
	ldr	x8, [x8, _OP_NULL@GOTPAGEOFF]
Lloh9:
	ldr	w3, [x8]
Lloh10:
	adrp	x8, _EVAL_NORMAL@GOTPAGE
Lloh11:
	ldr	x8, [x8, _EVAL_NORMAL@GOTPAGEOFF]
Lloh12:
	ldr	w4, [x8]
	mov	x0, x23
	mov	x1, x20
	mov	x2, x22
	b	LBB0_58
LBB0_5:
Lloh13:
	adrp	x8, _NULL_TYPE@GOTPAGE
Lloh14:
	ldr	x8, [x8, _NULL_TYPE@GOTPAGEOFF]
Lloh15:
	ldr	x0, [x8]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh16:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh17:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh18:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.6:
	mov	x22, x0
	mov	w0, #128
	mov	x1, x22
	bl	_unop_user_defined_p
	cbz	w0, LBB0_154
; %bb.7:
Lloh19:
	adrp	x8, _EVAL_NORMAL@GOTPAGE
Lloh20:
	ldr	x8, [x8, _EVAL_NORMAL@GOTPAGEOFF]
Lloh21:
	ldr	w2, [x8]
	mov	x0, x22
	mov	w1, #128
	bl	_value_x_unop
	b	LBB0_88
LBB0_8:
Lloh22:
	adrp	x8, _NULL_TYPE@GOTPAGE
Lloh23:
	ldr	x8, [x8, _NULL_TYPE@GOTPAGEOFF]
Lloh24:
	ldr	x0, [x8]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh25:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh26:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh27:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.9:
	mov	x20, x0
	mov	w0, #129
	mov	x1, x20
	bl	_unop_user_defined_p
	cbz	w0, LBB0_91
; %bb.10:
Lloh28:
	adrp	x8, _EVAL_NORMAL@GOTPAGE
Lloh29:
	ldr	x8, [x8, _EVAL_NORMAL@GOTPAGEOFF]
Lloh30:
	ldr	w2, [x8]
	mov	x0, x20
	mov	w1, #129
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_x_unop
LBB0_11:
	cbz	x23, LBB0_14
; %bb.12:
	mov	x0, x23
	bl	_TYPE_CODE
	cmp	w0, #134
	b.ne	LBB0_14
; %bb.13:
	mov	x0, x23
	bl	_check_typedef
	bl	_TYPE_TARGET_TYPE
	mov	x23, x0
LBB0_14:
	mov	x0, x23
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh31:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh32:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh33:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.15:
	mov	x20, x0
	bl	_VALUE_TYPE
	bl	_check_typedef
Lloh34:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh35:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh36:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_180
; %bb.16:
	mov	x21, x0
	bl	_ada_is_array_descriptor
	cbz	w0, LBB0_114
; %bb.17:
	mov	x0, x20
	mov	w1, #0
	bl	_ada_type_of_array
	mov	x19, x0
	cbnz	x0, LBB0_19
; %bb.18:
Lloh37:
	adrp	x0, l_.str.8@PAGE
Lloh38:
	add	x0, x0, l_.str.8@PAGEOFF
	bl	_error
LBB0_19:
	mov	x0, x19
	mov	w1, #0
	mov	x2, #0
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_at_lazy
LBB0_20:
	add	w9, w24, #3
	str	w9, [x21]
	mov	w9, #24
	smaddl	x8, w25, w9, x8
	ldr	x23, [x8, #16]
	mov	x0, x23
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh39:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh40:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh41:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.21:
	mov	x22, x0
	bl	_VALUE_TYPE
	bl	_check_typedef
	cmp	x23, x0
	b.eq	LBB0_154
; %bb.22:
	mov	x0, x23
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_112
; %bb.23:
	mov	x0, x23
	mov	x1, x22
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_cast_to_fixed
LBB0_24:
Lloh42:
	adrp	x8, _NULL_TYPE@GOTPAGE
Lloh43:
	ldr	x8, [x8, _NULL_TYPE@GOTPAGEOFF]
Lloh44:
	ldr	x0, [x8]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh45:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh46:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh47:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.25:
	mov	x22, x0
	bl	_VALUE_TYPE
Lloh48:
	adrp	x8, _not_lval@GOTPAGE
Lloh49:
	ldr	x8, [x8, _not_lval@GOTPAGEOFF]
Lloh50:
	ldr	w1, [x8]
	bl	_value_zero
	mov	x1, x0
	mov	x0, x22
	bl	_value_less
	cbz	w0, LBB0_154
; %bb.26:
	mov	x0, x22
LBB0_27:
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_neg
LBB0_28:
	str	w24, [x21]
	mov	x0, x23
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp_standard
	b	LBB0_88
LBB0_29:
	mov	w9, #24
	smaddl	x8, w25, w9, x8
	ldr	w0, [x8, #8]
	bl	_longest_to_int
	add	w0, w0, #1
	bl	_BYTES_TO_EXP_ELEM
	ldr	w8, [x21]
	add	w8, w0, w8
	add	w8, w8, #3
	str	w8, [x21]
Lloh51:
	adrp	x8, _NULL_TYPE@GOTPAGE
Lloh52:
	ldr	x8, [x8, _NULL_TYPE@GOTPAGEOFF]
Lloh53:
	ldr	x0, [x8]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh54:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh55:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh56:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.30:
Lloh57:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh58:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh59:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_84
; %bb.31:
	ldr	x8, [x20]
	add	w9, w24, #2
	mov	w10, #24
	smaddl	x8, w9, w10, x8
	add	x1, x8, #4
Lloh60:
	adrp	x2, l_.str.10@PAGE
Lloh61:
	add	x2, x2, l_.str.10@PAGEOFF
	b	LBB0_87
LBB0_32:
	str	w24, [x21]
Lloh62:
	adrp	x9, _EVAL_SKIP@GOTPAGE
Lloh63:
	ldr	x9, [x9, _EVAL_SKIP@GOTPAGEOFF]
Lloh64:
	ldr	w9, [x9]
	cmp	w9, w19
	b.ne	LBB0_59
; %bb.33:
	add	w8, w24, #4
	str	w8, [x21]
	b	LBB0_137
LBB0_34:
	add	w8, w24, #3
	str	w8, [x21]
Lloh65:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh66:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh67:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.35:
Lloh68:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh69:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh70:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_81
; %bb.36:
Lloh71:
	adrp	x8, _builtin_type_void@GOTPAGE
Lloh72:
	ldr	x8, [x8, _builtin_type_void@GOTPAGEOFF]
Lloh73:
	ldr	x0, [x8]
	b	LBB0_165
LBB0_37:
	add	w9, w24, #3
	str	w9, [x21]
	mov	w9, #24
	smaddl	x8, w25, w9, x8
	ldr	w0, [x8, #8]
	bl	_longest_to_int
	mov	x22, x0
	lsl	w8, w0, #3
	add	w0, w8, #16
	bl	_alloca
	mov	x23, x0
	tbnz	w22, #31, LBB0_62
; %bb.38:
	add	w24, w22, #1
Lloh74:
	adrp	x25, _NULL_TYPE@GOTPAGE
Lloh75:
	ldr	x25, [x25, _NULL_TYPE@GOTPAGEOFF]
	mov	x26, x24
	mov	x27, x23
LBB0_39:                                ; =>This Inner Loop Header: Depth=1
	ldr	x0, [x25]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
	str	x0, [x27], #8
	subs	x26, x26, #1
	b.ne	LBB0_39
	b	LBB0_63
LBB0_40:
	add	w9, w24, #4
	str	w9, [x21]
	mov	w26, #24
	smaddl	x8, w25, w26, x8
	ldr	w0, [x8, #8]
	bl	_longest_to_int
	mov	x22, x0
	ldr	x8, [x20]
	add	w9, w24, #2
	smaddl	x8, w9, w26, x8
	ldr	w0, [x8, #8]
	bl	_longest_to_int
	mov	x24, x0
	sub	w26, w0, w22
	cbz	x23, LBB0_42
; %bb.41:
	mov	x0, x23
	bl	_check_typedef
LBB0_42:
	lsl	w8, w26, #3
	add	w0, w8, #16
	bl	_alloca
	mov	x23, x0
	mov	x25, #0
	cmp	w26, #0
	csel	w8, w26, wzr, gt
	lsl	x8, x8, #3
	add	x26, x8, #8
LBB0_43:                                ; =>This Inner Loop Header: Depth=1
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	bl	_evaluate_subexp_with_coercion
	str	x0, [x23, x25]
	add	x25, x25, #8
	cmp	x26, x25
	b.ne	LBB0_43
; %bb.44:
Lloh76:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh77:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh78:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.45:
	mov	x0, x22
	mov	x1, x24
	mov	x2, x23
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_array
LBB0_46:
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	bl	_evaluate_subexp_with_coercion
	mov	x22, x0
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	bl	_evaluate_subexp_with_coercion
Lloh79:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh80:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh81:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.47:
	mov	x20, x0
	mov	w0, #144
	mov	x1, x22
	mov	x2, x20
	bl	_binop_user_defined_p
	cbz	w0, LBB0_93
; %bb.48:
Lloh82:
	adrp	x8, _OP_NULL@GOTPAGE
Lloh83:
	ldr	x8, [x8, _OP_NULL@GOTPAGEOFF]
Lloh84:
	ldr	w3, [x8]
Lloh85:
	adrp	x8, _EVAL_NORMAL@GOTPAGE
Lloh86:
	ldr	x8, [x8, _EVAL_NORMAL@GOTPAGEOFF]
Lloh87:
	ldr	w4, [x8]
	mov	x0, x22
	mov	x1, x20
	mov	w2, #144
	b	LBB0_58
LBB0_49:
Lloh88:
	adrp	x23, _NULL_TYPE@GOTPAGE
Lloh89:
	ldr	x23, [x23, _NULL_TYPE@GOTPAGEOFF]
	ldr	x0, [x23]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
	mov	x22, x0
	ldr	x0, [x23]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh90:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh91:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh92:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.50:
	mov	x20, x0
	mov	w0, #146
	mov	x1, x22
	mov	x2, x20
	bl	_binop_user_defined_p
	cbz	w0, LBB0_98
; %bb.51:
Lloh93:
	adrp	x8, _OP_NULL@GOTPAGE
Lloh94:
	ldr	x8, [x8, _OP_NULL@GOTPAGEOFF]
Lloh95:
	ldr	w3, [x8]
Lloh96:
	adrp	x8, _EVAL_NORMAL@GOTPAGE
Lloh97:
	ldr	x8, [x8, _EVAL_NORMAL@GOTPAGEOFF]
Lloh98:
	ldr	w4, [x8]
	mov	x0, x22
	mov	x1, x20
	mov	w2, #146
	bl	_value_x_binop
	b	LBB0_88
LBB0_52:
Lloh99:
	adrp	x8, _NULL_TYPE@GOTPAGE
Lloh100:
	ldr	x8, [x8, _NULL_TYPE@GOTPAGEOFF]
Lloh101:
	ldr	x0, [x8]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
	mov	x22, x0
	bl	_VALUE_TYPE
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh102:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh103:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh104:
	ldr	w8, [x8]
Lloh105:
	adrp	x9, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh106:
	ldr	x9, [x9, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh107:
	ldr	w9, [x9]
	cmp	w8, w19
	ccmp	w9, w19, #4, ne
	b.eq	LBB0_154
; %bb.53:
	mov	x20, x0
	mov	w0, #148
	mov	x1, x22
	mov	x2, x20
	bl	_binop_user_defined_p
	cbz	w0, LBB0_102
; %bb.54:
Lloh108:
	adrp	x8, _OP_NULL@GOTPAGE
Lloh109:
	ldr	x8, [x8, _OP_NULL@GOTPAGEOFF]
Lloh110:
	ldr	w3, [x8]
Lloh111:
	adrp	x8, _EVAL_NORMAL@GOTPAGE
Lloh112:
	ldr	x8, [x8, _EVAL_NORMAL@GOTPAGEOFF]
Lloh113:
	ldr	w4, [x8]
	mov	x0, x22
	mov	x1, x20
	mov	w2, #148
	b	LBB0_58
LBB0_55:
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	bl	_evaluate_subexp_with_coercion
	mov	x22, x0
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	bl	_evaluate_subexp_with_coercion
Lloh114:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh115:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh116:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.56:
	mov	x20, x0
	mov	w0, #149
	mov	x1, x22
	mov	x2, x20
	bl	_binop_user_defined_p
	cbz	w0, LBB0_105
; %bb.57:
Lloh117:
	adrp	x8, _OP_NULL@GOTPAGE
Lloh118:
	ldr	x8, [x8, _OP_NULL@GOTPAGEOFF]
Lloh119:
	ldr	w3, [x8]
Lloh120:
	adrp	x8, _EVAL_NORMAL@GOTPAGE
Lloh121:
	ldr	x8, [x8, _EVAL_NORMAL@GOTPAGEOFF]
Lloh122:
	ldr	w4, [x8]
	mov	x0, x22
	mov	x1, x20
	mov	w2, #149
LBB0_58:
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_x_binop
LBB0_59:
Lloh123:
	adrp	x9, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh124:
	ldr	x9, [x9, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh125:
	ldr	w9, [x9]
	cmp	w9, w19
	b.ne	LBB0_89
; %bb.60:
	add	w9, w24, #4
	str	w9, [x21]
	add	w9, w24, #2
	mov	w10, #24
	smaddl	x8, w9, w10, x8
	ldr	w0, [x8, #12]
	bl	_SYMBOL_TYPE
	bl	_static_unwrap_type
LBB0_61:
	bl	_to_static_fixed_type
	b	LBB0_100
LBB0_62:
	mov	w24, #0
LBB0_63:
	str	xzr, [x23, w24, uxtw #3]
Lloh126:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh127:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh128:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.64:
	ldr	x0, [x23]
	bl	_VALUE_TYPE
	bl	_TYPE_CODE
	mov	x8, x0
Lloh129:
	adrp	x9, _TYPE_CODE_REF@GOTPAGE
Lloh130:
	ldr	x9, [x9, _TYPE_CODE_REF@GOTPAGEOFF]
Lloh131:
	ldr	w9, [x9]
	ldr	x0, [x23]
	cmp	w8, w9
	b.ne	LBB0_66
; %bb.65:
	bl	_value_addr
	str	x0, [x23]
LBB0_66:
	bl	_VALUE_TYPE
	bl	_ada_is_packed_array_type
	mov	x8, x0
	ldr	x0, [x23]
	cbz	w8, LBB0_68
; %bb.67:
	bl	_ada_coerce_to_simple_array
	str	x0, [x23]
LBB0_68:
	bl	_VALUE_TYPE
	bl	_check_typedef
	mov	x24, x0
	bl	_TYPE_CODE
	cmp	w0, #134
	b.ne	LBB0_127
; %bb.69:
	mov	x0, x24
	bl	_TYPE_TARGET_TYPE
	bl	_check_typedef
	bl	_TYPE_CODE
	cmp	w0, #133
	b.eq	LBB0_124
; %bb.70:
	cmp	w0, #136
	b.eq	LBB0_127
; %bb.71:
	cmp	w0, #135
	b.eq	LBB0_126
; %bb.72:
	ldr	x0, [x23]
	bl	_VALUE_TYPE
	bl	_ada_type_name
                                        ; kill: def $w0 killed $w0 def $x0
	str	x0, [sp]
Lloh132:
	adrp	x0, l_.str.3@PAGE
Lloh133:
	add	x0, x0, l_.str.3@PAGEOFF
	bl	_error
	b	LBB0_127
LBB0_73:
Lloh134:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh135:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh136:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_76
; %bb.74:
Lloh137:
	adrp	x8, _BINOP_REM@GOTPAGE
Lloh138:
	ldr	x8, [x8, _BINOP_REM@GOTPAGEOFF]
Lloh139:
	ldr	w8, [x8]
Lloh140:
	adrp	x9, _BINOP_MOD@GOTPAGE
Lloh141:
	ldr	x9, [x9, _BINOP_MOD@GOTPAGEOFF]
Lloh142:
	ldr	w9, [x9]
	cmp	w22, #147
	ccmp	w22, w8, #4, ne
	ccmp	w22, w9, #4, ne
	b.ne	LBB0_76
; %bb.75:
	mov	x0, x23
	b	LBB0_99
LBB0_76:
	mov	x0, x23
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_78
; %bb.77:
	mov	x0, x23
	bl	_cast_from_fixed_to_double
	mov	x23, x0
LBB0_78:
	mov	x0, x20
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_80
; %bb.79:
	mov	x0, x20
	bl	_cast_from_fixed_to_double
	mov	x20, x0
LBB0_80:
	mov	x0, x23
	mov	x1, x20
	mov	x2, x22
	b	LBB0_119
LBB0_81:
Lloh143:
	adrp	x0, l_.str.11@PAGE
Lloh144:
	add	x0, x0, l_.str.11@PAGEOFF
	bl	_error
	ldr	x8, [x20]
LBB0_82:
	mov	w9, #24
	smaddl	x8, w25, w9, x8
	ldr	w0, [x8, #8]
	bl	_longest_to_int
	add	w0, w0, #1
	bl	_BYTES_TO_EXP_ELEM
	ldr	w8, [x21]
	add	w8, w0, w8
	add	w8, w8, #3
	str	w8, [x21]
Lloh145:
	adrp	x8, _NULL_TYPE@GOTPAGE
Lloh146:
	ldr	x8, [x8, _NULL_TYPE@GOTPAGEOFF]
Lloh147:
	ldr	x0, [x8]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
Lloh148:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh149:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh150:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_137
; %bb.83:
Lloh151:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh152:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh153:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_86
LBB0_84:
	bl	_VALUE_TYPE
	ldr	x8, [x20]
	add	w9, w24, #2
	mov	w10, #24
	smaddl	x8, w9, w10, x8
	add	x1, x8, #4
	mov	w2, #0
	mov	x3, #0
	bl	_ada_lookup_struct_elt_type
	bl	_ada_aligned_type
LBB0_85:
Lloh154:
	adrp	x8, _lval_memory@GOTPAGE
Lloh155:
	ldr	x8, [x8, _lval_memory@GOTPAGEOFF]
	b	LBB0_101
LBB0_86:
	ldr	x8, [x20]
	add	w9, w24, #2
	mov	w10, #24
	smaddl	x8, w9, w10, x8
	add	x1, x8, #4
Lloh156:
	adrp	x2, l_.str.12@PAGE
Lloh157:
	add	x2, x2, l_.str.12@PAGEOFF
LBB0_87:
	bl	_ada_value_struct_elt
LBB0_88:
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_unwrap_value
LBB0_89:
	mov	x0, x23
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp_standard
	bl	_unwrap_value
	mov	x19, x0
	bl	_VALUE_TYPE
	mov	x20, x0
	mov	x0, x19
	bl	_VALUE_ADDRESS
	mov	x21, x0
	mov	x0, x19
	bl	_VALUE_OFFSET
	add	x2, x0, x21
	mov	x0, x20
	mov	w1, #0
	mov	x3, x19
LBB0_90:
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_ada_to_fixed_value
LBB0_91:
	mov	x0, x20
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_120
; %bb.92:
	mov	x0, x20
	bl	_VALUE_TYPE
	mov	x19, x0
	mov	x0, x20
	bl	_value_neg
	b	LBB0_110
LBB0_93:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbnz	w0, LBB0_95
; %bb.94:
	mov	x0, x20
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_97
LBB0_95:
	mov	x0, x22
	bl	_VALUE_TYPE
	mov	x19, x0
	mov	x0, x20
	bl	_VALUE_TYPE
	cmp	x19, x0
	b.eq	LBB0_97
; %bb.96:
Lloh158:
	adrp	x0, l_.str.2@PAGE
Lloh159:
	add	x0, x0, l_.str.2@PAGEOFF
	bl	_error
LBB0_97:
	mov	x0, x22
	bl	_VALUE_TYPE
	mov	x19, x0
	mov	x0, x22
	mov	x1, x20
	bl	_value_sub
	b	LBB0_110
LBB0_98:
Lloh160:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh161:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh162:
	ldr	w8, [x8]
	mov	x0, x22
	cmp	w8, w19
	b.ne	LBB0_118
LBB0_99:
	bl	_VALUE_TYPE
LBB0_100:
Lloh163:
	adrp	x8, _not_lval@GOTPAGE
Lloh164:
	ldr	x8, [x8, _not_lval@GOTPAGEOFF]
LBB0_101:
	ldr	w1, [x8]
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_zero
LBB0_102:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_121
; %bb.103:
	mov	x0, x22
	bl	_VALUE_TYPE
	mov	x1, x20
	bl	_cast_to_fixed
LBB0_104:
	mov	x20, x0
	b	LBB0_123
LBB0_105:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbnz	w0, LBB0_107
; %bb.106:
	mov	x0, x20
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_109
LBB0_107:
	mov	x0, x22
	bl	_VALUE_TYPE
	mov	x19, x0
	mov	x0, x20
	bl	_VALUE_TYPE
	cmp	x19, x0
	b.eq	LBB0_109
; %bb.108:
Lloh165:
	adrp	x0, l_.str.1@PAGE
Lloh166:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_error
LBB0_109:
	mov	x0, x22
	bl	_VALUE_TYPE
	mov	x19, x0
	mov	x0, x22
	mov	x1, x20
	bl	_value_add
LBB0_110:
	mov	x1, x0
	mov	x0, x19
LBB0_111:
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_cast
LBB0_112:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_168
; %bb.113:
	mov	x0, x22
	bl	_cast_from_fixed_to_double
	mov	x1, x0
	mov	x0, x23
	b	LBB0_111
LBB0_114:
	mov	x0, x21
	bl	_TYPE_CODE
	cmp	w0, #134
	b.eq	LBB0_117
; %bb.115:
	mov	x0, x21
	bl	_TYPE_CODE
Lloh167:
	adrp	x8, _TYPE_CODE_REF@GOTPAGE
Lloh168:
	ldr	x8, [x8, _TYPE_CODE_REF@GOTPAGEOFF]
Lloh169:
	ldr	w8, [x8]
	cmp	w0, w8
	b.eq	LBB0_117
; %bb.116:
	mov	x0, x21
	bl	_TYPE_CODE
	cmp	w0, #136
	b.ne	LBB0_176
LBB0_117:
	mov	x0, x21
	bl	_TYPE_TARGET_TYPE
	bl	_check_typedef
	bl	_ada_aligned_type
	bl	_to_static_fixed_type
	b	LBB0_85
LBB0_118:
	mov	x1, x20
	mov	w2, #146
LBB0_119:
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_binop
LBB0_120:
	mov	x0, x20
	b	LBB0_27
LBB0_121:
	mov	x0, x20
	bl	_VALUE_TYPE
	bl	_ada_is_fixed_point_type
	cbz	w0, LBB0_171
; %bb.122:
Lloh170:
	adrp	x0, l_.str@PAGE
Lloh171:
	add	x0, x0, l_.str@PAGEOFF
	bl	_error
LBB0_123:
	mov	x0, x22
	mov	x1, x20
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_ada_value_assign
LBB0_124:
Lloh172:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh173:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh174:
	ldr	w8, [x8]
	cmp	w8, w19
	b.eq	LBB0_126
; %bb.125:
	ldr	x0, [x23]
	bl	_ada_value_ind
	str	x0, [x23]
LBB0_126:
	mov	x0, x24
	bl	_TYPE_TARGET_TYPE
	bl	_check_typedef
	mov	x24, x0
LBB0_127:
	mov	x0, x24
	bl	_TYPE_CODE
	sub	w8, w0, #133
	cmp	w8, #3
	b.hi	LBB0_135
; %bb.128:
Lloh175:
	adrp	x9, lJTI0_1@PAGE
Lloh176:
	add	x9, x9, lJTI0_1@PAGEOFF
	adr	x10, LBB0_129
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_129:
	mov	x0, x24
	bl	_ada_array_arity
	mov	x21, x0
	mov	x0, x24
	mov	x1, x22
	bl	_ada_array_element_type
	mov	x20, x0
	cbnz	x0, LBB0_131
; %bb.130:
Lloh177:
	adrp	x0, l_.str.4@PAGE
Lloh178:
	add	x0, x0, l_.str.4@PAGEOFF
	bl	_error
LBB0_131:
	cmp	w21, w22
	b.eq	LBB0_133
; %bb.132:
	str	x21, [sp]
Lloh179:
	adrp	x0, l_.str.5@PAGE
Lloh180:
	add	x0, x0, l_.str.5@PAGEOFF
	bl	_error
LBB0_133:
Lloh181:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh182:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh183:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_166
; %bb.134:
	mov	x0, x20
	b	LBB0_164
LBB0_135:
Lloh184:
	adrp	x0, l_.str.7@PAGE
Lloh185:
	add	x0, x0, l_.str.7@PAGEOFF
	bl	_error
LBB0_136:
Lloh186:
	adrp	x24, _NULL_TYPE@GOTPAGE
Lloh187:
	ldr	x24, [x24, _NULL_TYPE@GOTPAGEOFF]
	ldr	x0, [x24]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
	mov	x22, x0
	ldr	x0, [x24]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
	bl	_value_as_long
	mov	x23, x0
	ldr	x0, [x24]
	mov	x1, x20
	mov	x2, x21
	mov	x3, x19
	bl	_evaluate_subexp
	bl	_value_as_long
Lloh188:
	adrp	x8, _EVAL_SKIP@GOTPAGE
Lloh189:
	ldr	x8, [x8, _EVAL_SKIP@GOTPAGEOFF]
Lloh190:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_138
LBB0_137:
Lloh191:
	adrp	x8, _builtin_type_long@GOTPAGE
Lloh192:
	ldr	x8, [x8, _builtin_type_long@GOTPAGEOFF]
Lloh193:
	ldr	w0, [x8]
	mov	w1, #1
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_from_longest
LBB0_138:
	mov	x20, x0
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_TYPE_CODE
Lloh194:
	adrp	x8, _TYPE_CODE_REF@GOTPAGE
Lloh195:
	ldr	x8, [x8, _TYPE_CODE_REF@GOTPAGEOFF]
Lloh196:
	ldr	w8, [x8]
	cmp	w0, w8
	b.ne	LBB0_143
; %bb.139:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_TYPE_TARGET_TYPE
	cbz	x0, LBB0_143
; %bb.140:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_TYPE_TARGET_TYPE
	bl	_TYPE_CODE
	cmp	w0, #136
	b.ne	LBB0_143
; %bb.141:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_check_typedef
	bl	_ada_is_array_descriptor
	cbnz	w0, LBB0_143
; %bb.142:
	mov	x0, x22
	bl	_ada_coerce_ref
	mov	x22, x0
LBB0_143:
Lloh197:
	adrp	x21, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh198:
	ldr	x21, [x21, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
	ldr	w8, [x21]
	cmp	w8, w19
	b.ne	LBB0_147
; %bb.144:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_check_typedef
	bl	_ada_is_array_descriptor
	cbz	w0, LBB0_147
; %bb.145:
	mov	x0, x22
	mov	w1, #0
	bl	_ada_type_of_array
	cbz	x0, LBB0_147
; %bb.146:
	mov	w1, #0
	mov	x2, #0
	bl	_value_at_lazy
	mov	x22, x0
LBB0_147:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_ada_is_array_descriptor
	cbz	w0, LBB0_149
; %bb.148:
	mov	x0, x22
	bl	_ada_coerce_to_simple_array
	mov	x22, x0
LBB0_149:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_TYPE_CODE
	cmp	w0, #134
	b.ne	LBB0_153
; %bb.150:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_TYPE_TARGET_TYPE
	cbz	x0, LBB0_153
; %bb.151:
	mov	x0, x22
	bl	_VALUE_TYPE
	bl	_TYPE_TARGET_TYPE
	bl	_TYPE_CODE
	cmp	w0, #136
	b.ne	LBB0_153
; %bb.152:
	mov	x0, x22
	bl	_ada_value_ind
	mov	x22, x0
LBB0_153:
	ldr	w8, [x21]
	cmp	w8, w19
	b.ne	LBB0_155
LBB0_154:
	mov	x0, x22
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	ret
LBB0_155:
	sub	w8, w20, w23
	add	w2, w8, #1
	mov	x0, x22
	mov	x1, x23
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_value_slice
LBB0_156:
	mov	x0, x24
	bl	_TYPE_TARGET_TYPE
	mov	x1, #0
	mov	w2, #1
	bl	_to_fixed_array_type
	mov	x1, x0
Lloh199:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh200:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh201:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_159
; %bb.157:
	mov	x0, x1
	mov	x1, x22
	bl	_ada_array_element_type
	cbnz	x0, LBB0_164
; %bb.158:
Lloh202:
	adrp	x0, l_.str.6@PAGE
Lloh203:
	add	x0, x0, l_.str.6@PAGEOFF
	bl	_error
	mov	x1, #0
LBB0_159:
	ldr	x0, [x23], #8
	mov	x2, x22
	mov	x3, x23
	bl	_ada_value_ptr_subscript
	b	LBB0_88
LBB0_160:
Lloh204:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh205:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh206:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_167
; %bb.161:
	mov	x0, x24
	bl	_TYPE_TARGET_TYPE
	b	LBB0_165
LBB0_162:
Lloh207:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh208:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh209:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_174
; %bb.163:
	mov	x0, x24
	mov	x1, x22
	bl	_ada_array_element_type
	cbz	x0, LBB0_173
LBB0_164:
	bl	_ada_aligned_type
LBB0_165:
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_allocate_value
LBB0_166:
	ldr	x0, [x23], #8
	b	LBB0_175
LBB0_167:
	ldr	x0, [x23], #8
	mov	x1, x22
	mov	x2, x23
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_call_function_by_hand
LBB0_168:
	mov	x0, x22
	bl	_VALUE_LVAL
Lloh210:
	adrp	x8, _lval_memory@GOTPAGE
Lloh211:
	ldr	x8, [x8, _lval_memory@GOTPAGEOFF]
Lloh212:
	ldr	w8, [x8]
	cmp	w0, w8
	b.ne	LBB0_172
; %bb.169:
Lloh213:
	adrp	x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGE
Lloh214:
	ldr	x8, [x8, _EVAL_AVOID_SIDE_EFFECTS@GOTPAGEOFF]
Lloh215:
	ldr	w8, [x8]
	cmp	w8, w19
	b.ne	LBB0_178
; %bb.170:
	mov	x0, x23
	b	LBB0_61
LBB0_171:
	mov	x0, x22
	bl	_VALUE_TYPE
	mov	x1, x20
	bl	_coerce_for_assign
	b	LBB0_104
LBB0_172:
	mov	x0, x23
	mov	x1, x22
	b	LBB0_111
LBB0_173:
Lloh216:
	adrp	x0, l_.str.6@PAGE
Lloh217:
	add	x0, x0, l_.str.6@PAGEOFF
	bl	_error
LBB0_174:
	ldr	x0, [x23], #8
	bl	_ada_coerce_to_simple_array
LBB0_175:
	mov	x1, x22
	mov	x2, x23
	bl	_ada_value_subscript
	b	LBB0_88
LBB0_176:
	mov	x0, x21
	bl	_TYPE_CODE
Lloh218:
	adrp	x8, _TYPE_CODE_INT@GOTPAGE
Lloh219:
	ldr	x8, [x8, _TYPE_CODE_INT@GOTPAGEOFF]
Lloh220:
	ldr	w8, [x8]
	cmp	w0, w8
	b.ne	LBB0_179
; %bb.177:
Lloh221:
	adrp	x8, _builtin_type_int@GOTPAGE
Lloh222:
	ldr	x8, [x8, _builtin_type_int@GOTPAGEOFF]
Lloh223:
	ldr	x0, [x8]
	b	LBB0_85
LBB0_178:
	mov	x0, x22
	bl	_VALUE_ADDRESS
	mov	x19, x0
	mov	x0, x22
	bl	_VALUE_OFFSET
	add	x2, x0, x19
	mov	x0, x23
	mov	w1, #0
	mov	x3, #0
	b	LBB0_90
LBB0_179:
Lloh224:
	adrp	x0, l_.str.9@PAGE
Lloh225:
	add	x0, x0, l_.str.9@PAGEOFF
	bl	_error
LBB0_180:
	mov	x0, x20
	bl	_ada_coerce_ref
	mov	x19, x0
	bl	_VALUE_TYPE
	bl	_check_typedef
	bl	_ada_is_array_descriptor
	cbz	w0, LBB0_182
; %bb.181:
	mov	x0, x19
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_ada_coerce_to_simple_array
LBB0_182:
	mov	x0, x19
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	b	_ada_value_ind
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.loh AdrpLdrGotLdr	Lloh25, Lloh26, Lloh27
	.loh AdrpLdrGotLdr	Lloh22, Lloh23, Lloh24
	.loh AdrpLdrGotLdr	Lloh28, Lloh29, Lloh30
	.loh AdrpLdrGotLdr	Lloh31, Lloh32, Lloh33
	.loh AdrpLdrGotLdr	Lloh34, Lloh35, Lloh36
	.loh AdrpAdd	Lloh37, Lloh38
	.loh AdrpLdrGotLdr	Lloh39, Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh45, Lloh46, Lloh47
	.loh AdrpLdrGotLdr	Lloh42, Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh54, Lloh55, Lloh56
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpLdrGotLdr	Lloh57, Lloh58, Lloh59
	.loh AdrpAdd	Lloh60, Lloh61
	.loh AdrpLdrGotLdr	Lloh62, Lloh63, Lloh64
	.loh AdrpLdrGotLdr	Lloh65, Lloh66, Lloh67
	.loh AdrpLdrGotLdr	Lloh68, Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh71, Lloh72, Lloh73
	.loh AdrpLdrGot	Lloh74, Lloh75
	.loh AdrpLdrGotLdr	Lloh76, Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh79, Lloh80, Lloh81
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpLdrGotLdr	Lloh82, Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh90, Lloh91, Lloh92
	.loh AdrpLdrGot	Lloh88, Lloh89
	.loh AdrpLdrGotLdr	Lloh96, Lloh97, Lloh98
	.loh AdrpLdrGotLdr	Lloh93, Lloh94, Lloh95
	.loh AdrpLdrGotLdr	Lloh105, Lloh106, Lloh107
	.loh AdrpLdrGotLdr	Lloh102, Lloh103, Lloh104
	.loh AdrpLdrGotLdr	Lloh99, Lloh100, Lloh101
	.loh AdrpLdrGotLdr	Lloh111, Lloh112, Lloh113
	.loh AdrpLdrGotLdr	Lloh108, Lloh109, Lloh110
	.loh AdrpLdrGotLdr	Lloh114, Lloh115, Lloh116
	.loh AdrpLdrGotLdr	Lloh120, Lloh121, Lloh122
	.loh AdrpLdrGotLdr	Lloh117, Lloh118, Lloh119
	.loh AdrpLdrGotLdr	Lloh123, Lloh124, Lloh125
	.loh AdrpLdrGotLdr	Lloh126, Lloh127, Lloh128
	.loh AdrpLdrGotLdr	Lloh129, Lloh130, Lloh131
	.loh AdrpAdd	Lloh132, Lloh133
	.loh AdrpLdrGotLdr	Lloh134, Lloh135, Lloh136
	.loh AdrpLdrGotLdr	Lloh140, Lloh141, Lloh142
	.loh AdrpLdrGotLdr	Lloh137, Lloh138, Lloh139
	.loh AdrpAdd	Lloh143, Lloh144
	.loh AdrpLdrGotLdr	Lloh148, Lloh149, Lloh150
	.loh AdrpLdrGotLdr	Lloh145, Lloh146, Lloh147
	.loh AdrpLdrGotLdr	Lloh151, Lloh152, Lloh153
	.loh AdrpLdrGot	Lloh154, Lloh155
	.loh AdrpAdd	Lloh156, Lloh157
	.loh AdrpAdd	Lloh158, Lloh159
	.loh AdrpLdrGotLdr	Lloh160, Lloh161, Lloh162
	.loh AdrpLdrGot	Lloh163, Lloh164
	.loh AdrpAdd	Lloh165, Lloh166
	.loh AdrpLdrGotLdr	Lloh167, Lloh168, Lloh169
	.loh AdrpAdd	Lloh170, Lloh171
	.loh AdrpLdrGotLdr	Lloh172, Lloh173, Lloh174
	.loh AdrpAdd	Lloh175, Lloh176
	.loh AdrpAdd	Lloh177, Lloh178
	.loh AdrpAdd	Lloh179, Lloh180
	.loh AdrpLdrGotLdr	Lloh181, Lloh182, Lloh183
	.loh AdrpAdd	Lloh184, Lloh185
	.loh AdrpLdrGotLdr	Lloh188, Lloh189, Lloh190
	.loh AdrpLdrGot	Lloh186, Lloh187
	.loh AdrpLdrGotLdr	Lloh191, Lloh192, Lloh193
	.loh AdrpLdrGotLdr	Lloh194, Lloh195, Lloh196
	.loh AdrpLdrGot	Lloh197, Lloh198
	.loh AdrpLdrGotLdr	Lloh199, Lloh200, Lloh201
	.loh AdrpAdd	Lloh202, Lloh203
	.loh AdrpLdrGotLdr	Lloh204, Lloh205, Lloh206
	.loh AdrpLdrGotLdr	Lloh207, Lloh208, Lloh209
	.loh AdrpLdrGotLdr	Lloh210, Lloh211, Lloh212
	.loh AdrpLdrGotLdr	Lloh213, Lloh214, Lloh215
	.loh AdrpAdd	Lloh216, Lloh217
	.loh AdrpLdrGotLdr	Lloh218, Lloh219, Lloh220
	.loh AdrpLdrGotLdr	Lloh221, Lloh222, Lloh223
	.loh AdrpAdd	Lloh224, Lloh225
	.cfi_endproc
	.section	__TEXT,__const
	.p2align	1
lJTI0_0:
	.short	(LBB0_5-LBB0_2)>>2
	.short	(LBB0_8-LBB0_2)>>2
	.short	(LBB0_11-LBB0_2)>>2
	.short	(LBB0_20-LBB0_2)>>2
	.short	(LBB0_24-LBB0_2)>>2
	.short	(LBB0_28-LBB0_2)>>2
	.short	(LBB0_28-LBB0_2)>>2
	.short	(LBB0_28-LBB0_2)>>2
	.short	(LBB0_28-LBB0_2)>>2
	.short	(LBB0_136-LBB0_2)>>2
	.short	(LBB0_29-LBB0_2)>>2
	.short	(LBB0_82-LBB0_2)>>2
	.short	(LBB0_32-LBB0_2)>>2
	.short	(LBB0_34-LBB0_2)>>2
	.short	(LBB0_37-LBB0_2)>>2
	.short	(LBB0_40-LBB0_2)>>2
	.short	(LBB0_46-LBB0_2)>>2
	.short	(LBB0_2-LBB0_2)>>2
	.short	(LBB0_49-LBB0_2)>>2
	.short	(LBB0_2-LBB0_2)>>2
	.short	(LBB0_52-LBB0_2)>>2
	.short	(LBB0_55-LBB0_2)>>2
lJTI0_1:
	.byte	(LBB0_129-LBB0_129)>>2
	.byte	(LBB0_156-LBB0_129)>>2
	.byte	(LBB0_160-LBB0_129)>>2
	.byte	(LBB0_162-LBB0_129)>>2
                                        ; -- End function
	.comm	_EVAL_SKIP,4,2                  ; @EVAL_SKIP
	.comm	_lval_memory,4,2                ; @lval_memory
	.comm	_EVAL_AVOID_SIDE_EFFECTS,4,2    ; @EVAL_AVOID_SIDE_EFFECTS
	.comm	_not_lval,4,2                   ; @not_lval
	.comm	_NULL_TYPE,8,3                  ; @NULL_TYPE
	.comm	_OP_NULL,4,2                    ; @OP_NULL
	.comm	_EVAL_NORMAL,4,2                ; @EVAL_NORMAL
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Fixed-point values must be assigned to fixed-point variables"

l_.str.1:                               ; @.str.1
	.asciz	"Operands of fixed-point addition must have the same type"

l_.str.2:                               ; @.str.2
	.asciz	"Operands of fixed-point subtraction must have the same type"

	.comm	_BINOP_REM,4,2                  ; @BINOP_REM
	.comm	_BINOP_MOD,4,2                  ; @BINOP_MOD
	.comm	_TYPE_CODE_REF,4,2              ; @TYPE_CODE_REF
l_.str.3:                               ; @.str.3
	.asciz	"cannot subscript or call something of type `%s'"

l_.str.4:                               ; @.str.4
	.asciz	"cannot subscript or call a record"

l_.str.5:                               ; @.str.5
	.asciz	"wrong number of subscripts; expecting %d"

l_.str.6:                               ; @.str.6
	.asciz	"element type of array unknown"

l_.str.7:                               ; @.str.7
	.asciz	"Internal error in evaluate_subexp"

l_.str.8:                               ; @.str.8
	.asciz	"Attempt to dereference null array pointer."

	.comm	_TYPE_CODE_INT,4,2              ; @TYPE_CODE_INT
	.comm	_builtin_type_int,8,3           ; @builtin_type_int
l_.str.9:                               ; @.str.9
	.asciz	"Attempt to take contents of a non-pointer value."

l_.str.10:                              ; @.str.10
	.asciz	"record"

	.comm	_builtin_type_void,8,3          ; @builtin_type_void
l_.str.11:                              ; @.str.11
	.asciz	"Attempt to use a type name as an expression"

l_.str.12:                              ; @.str.12
	.asciz	"record access"

	.comm	_builtin_type_long,4,2          ; @builtin_type_long
.subsections_via_symbols
