	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function nfp_fl_set_mpls
_nfp_fl_set_mpls:                       ## @nfp_fl_set_mpls
	.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	%rbx
	pushq	%rax
	.cfi_offset %rbx, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r14
	movq	_NFP_FL_ACTION_OPCODE_SET_MPLS@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 24(%rdi)
	movq	_NFP_FL_LW_SIZ@GOTPCREL(%rip), %rax
	movb	(%rax), %cl
	movl	$32, %eax
	shrq	%cl, %rax
	movq	%rax, 16(%rdi)
	movq	_ACT_MPLS_LABEL_NOT_SET@GOTPCREL(%rip), %r8
	movq	_MPLS_LS_LABEL_SHIFT@GOTPCREL(%rip), %rax
	movb	(%rax), %cl
	movl	(%rsi), %ebx
	movl	4(%rsi), %eax
	movl	%ebx, %edx
	shll	%cl, %edx
	xorl	%edi, %edi
	movl	$0, %r15d
	cmpl	(%r8), %ebx
	je	LBB0_2
## %bb.1:
	movq	_MPLS_LS_LABEL_MASK@GOTPCREL(%rip), %rcx
	movl	(%rcx), %r15d
	movl	%edx, %edi
LBB0_2:
	movq	_ACT_MPLS_TC_NOT_SET@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	je	LBB0_4
## %bb.3:
	movq	_MPLS_LS_TC_SHIFT@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	shll	%cl, %eax
	orl	%eax, %edi
	movq	_MPLS_LS_TC_MASK@GOTPCREL(%rip), %rax
	orl	(%rax), %r15d
LBB0_4:
	movl	8(%rsi), %eax
	movq	_ACT_MPLS_BOS_NOT_SET@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	je	LBB0_6
## %bb.5:
	movq	_MPLS_LS_S_SHIFT@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	shll	%cl, %eax
	orl	%eax, %edi
	movq	_MPLS_LS_S_MASK@GOTPCREL(%rip), %rax
	orl	(%rax), %r15d
LBB0_6:
	movl	12(%rsi), %eax
	testl	%eax, %eax
	je	LBB0_8
## %bb.7:
	movq	_MPLS_LS_TTL_SHIFT@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	shll	%cl, %eax
	orl	%eax, %edi
	movq	_MPLS_LS_TTL_MASK@GOTPCREL(%rip), %rax
	orl	(%rax), %r15d
LBB0_8:
	callq	_cpu_to_be32
	movq	%rax, 8(%r14)
	movl	%r15d, %edi
	callq	_cpu_to_be32
	movq	%rax, (%r14)
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_NFP_FL_ACTION_OPCODE_SET_MPLS,4,2 ## @NFP_FL_ACTION_OPCODE_SET_MPLS
	.comm	_NFP_FL_LW_SIZ,8,3              ## @NFP_FL_LW_SIZ
	.comm	_ACT_MPLS_LABEL_NOT_SET,4,2     ## @ACT_MPLS_LABEL_NOT_SET
	.comm	_MPLS_LS_LABEL_SHIFT,4,2        ## @MPLS_LS_LABEL_SHIFT
	.comm	_MPLS_LS_LABEL_MASK,4,2         ## @MPLS_LS_LABEL_MASK
	.comm	_ACT_MPLS_TC_NOT_SET,4,2        ## @ACT_MPLS_TC_NOT_SET
	.comm	_MPLS_LS_TC_SHIFT,4,2           ## @MPLS_LS_TC_SHIFT
	.comm	_MPLS_LS_TC_MASK,4,2            ## @MPLS_LS_TC_MASK
	.comm	_ACT_MPLS_BOS_NOT_SET,4,2       ## @ACT_MPLS_BOS_NOT_SET
	.comm	_MPLS_LS_S_SHIFT,4,2            ## @MPLS_LS_S_SHIFT
	.comm	_MPLS_LS_S_MASK,4,2             ## @MPLS_LS_S_MASK
	.comm	_MPLS_LS_TTL_SHIFT,4,2          ## @MPLS_LS_TTL_SHIFT
	.comm	_MPLS_LS_TTL_MASK,4,2           ## @MPLS_LS_TTL_MASK
	.no_dead_strip	_nfp_fl_set_mpls
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function nfp_fl_set_mpls
_nfp_fl_set_mpls:                       ; @nfp_fl_set_mpls
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x0
Lloh0:
	adrp	x8, _NFP_FL_ACTION_OPCODE_SET_MPLS@GOTPAGE
Lloh1:
	ldr	x8, [x8, _NFP_FL_ACTION_OPCODE_SET_MPLS@GOTPAGEOFF]
Lloh2:
	ldr	w8, [x8]
Lloh3:
	adrp	x9, _NFP_FL_LW_SIZ@GOTPAGE
Lloh4:
	ldr	x9, [x9, _NFP_FL_LW_SIZ@GOTPAGEOFF]
	str	w8, [x0, #24]
Lloh5:
	ldr	x8, [x9]
	mov	w9, #32
	lsr	x8, x9, x8
Lloh6:
	adrp	x9, _ACT_MPLS_LABEL_NOT_SET@GOTPAGE
Lloh7:
	ldr	x9, [x9, _ACT_MPLS_LABEL_NOT_SET@GOTPAGEOFF]
	str	x8, [x0, #16]
Lloh8:
	ldr	w9, [x9]
Lloh9:
	adrp	x8, _MPLS_LS_LABEL_SHIFT@GOTPAGE
Lloh10:
	ldr	x8, [x8, _MPLS_LS_LABEL_SHIFT@GOTPAGEOFF]
Lloh11:
	ldr	w10, [x8]
	ldp	w11, w8, [x1]
	lsl	w10, w11, w10
Lloh12:
	adrp	x12, _MPLS_LS_LABEL_MASK@GOTPAGE
Lloh13:
	ldr	x12, [x12, _MPLS_LS_LABEL_MASK@GOTPAGEOFF]
Lloh14:
	ldr	w12, [x12]
	cmp	w11, w9
	csel	w0, wzr, w10, eq
	csel	w20, wzr, w12, eq
Lloh15:
	adrp	x9, _ACT_MPLS_TC_NOT_SET@GOTPAGE
Lloh16:
	ldr	x9, [x9, _ACT_MPLS_TC_NOT_SET@GOTPAGEOFF]
Lloh17:
	ldr	w9, [x9]
	cmp	w8, w9
	b.eq	LBB0_2
; %bb.1:
Lloh18:
	adrp	x9, _MPLS_LS_TC_SHIFT@GOTPAGE
Lloh19:
	ldr	x9, [x9, _MPLS_LS_TC_SHIFT@GOTPAGEOFF]
Lloh20:
	ldr	w9, [x9]
	lsl	w8, w8, w9
	orr	w0, w8, w0
Lloh21:
	adrp	x8, _MPLS_LS_TC_MASK@GOTPAGE
Lloh22:
	ldr	x8, [x8, _MPLS_LS_TC_MASK@GOTPAGEOFF]
Lloh23:
	ldr	w8, [x8]
	orr	w20, w8, w20
LBB0_2:
	ldr	w8, [x1, #8]
Lloh24:
	adrp	x9, _ACT_MPLS_BOS_NOT_SET@GOTPAGE
Lloh25:
	ldr	x9, [x9, _ACT_MPLS_BOS_NOT_SET@GOTPAGEOFF]
Lloh26:
	ldr	w9, [x9]
	cmp	w8, w9
	b.eq	LBB0_4
; %bb.3:
Lloh27:
	adrp	x9, _MPLS_LS_S_SHIFT@GOTPAGE
Lloh28:
	ldr	x9, [x9, _MPLS_LS_S_SHIFT@GOTPAGEOFF]
Lloh29:
	ldr	w9, [x9]
	lsl	w8, w8, w9
	orr	w0, w8, w0
Lloh30:
	adrp	x8, _MPLS_LS_S_MASK@GOTPAGE
Lloh31:
	ldr	x8, [x8, _MPLS_LS_S_MASK@GOTPAGEOFF]
Lloh32:
	ldr	w8, [x8]
	orr	w20, w8, w20
LBB0_4:
	ldr	w8, [x1, #12]
	cbz	w8, LBB0_6
; %bb.5:
Lloh33:
	adrp	x9, _MPLS_LS_TTL_SHIFT@GOTPAGE
Lloh34:
	ldr	x9, [x9, _MPLS_LS_TTL_SHIFT@GOTPAGEOFF]
Lloh35:
	ldr	w9, [x9]
	lsl	w8, w8, w9
	orr	w0, w8, w0
Lloh36:
	adrp	x8, _MPLS_LS_TTL_MASK@GOTPAGE
Lloh37:
	ldr	x8, [x8, _MPLS_LS_TTL_MASK@GOTPAGEOFF]
Lloh38:
	ldr	w8, [x8]
	orr	w20, w8, w20
LBB0_6:
	bl	_cpu_to_be32
	str	x0, [x19, #8]
	mov	x0, x20
	bl	_cpu_to_be32
	str	x0, [x19]
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh36, Lloh37, Lloh38
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.cfi_endproc
                                        ; -- End function
	.comm	_NFP_FL_ACTION_OPCODE_SET_MPLS,4,2 ; @NFP_FL_ACTION_OPCODE_SET_MPLS
	.comm	_NFP_FL_LW_SIZ,8,3              ; @NFP_FL_LW_SIZ
	.comm	_ACT_MPLS_LABEL_NOT_SET,4,2     ; @ACT_MPLS_LABEL_NOT_SET
	.comm	_MPLS_LS_LABEL_SHIFT,4,2        ; @MPLS_LS_LABEL_SHIFT
	.comm	_MPLS_LS_LABEL_MASK,4,2         ; @MPLS_LS_LABEL_MASK
	.comm	_ACT_MPLS_TC_NOT_SET,4,2        ; @ACT_MPLS_TC_NOT_SET
	.comm	_MPLS_LS_TC_SHIFT,4,2           ; @MPLS_LS_TC_SHIFT
	.comm	_MPLS_LS_TC_MASK,4,2            ; @MPLS_LS_TC_MASK
	.comm	_ACT_MPLS_BOS_NOT_SET,4,2       ; @ACT_MPLS_BOS_NOT_SET
	.comm	_MPLS_LS_S_SHIFT,4,2            ; @MPLS_LS_S_SHIFT
	.comm	_MPLS_LS_S_MASK,4,2             ; @MPLS_LS_S_MASK
	.comm	_MPLS_LS_TTL_SHIFT,4,2          ; @MPLS_LS_TTL_SHIFT
	.comm	_MPLS_LS_TTL_MASK,4,2           ; @MPLS_LS_TTL_MASK
	.no_dead_strip	_nfp_fl_set_mpls
.subsections_via_symbols
