All of lore.kernel.org
 help / color / mirror / Atom feed
* Failure to build librseq on ppc
@ 2020-07-07 19:17 Mathieu Desnoyers
  2020-07-08  0:59 ` Segher Boessenkool
  0 siblings, 1 reply; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-07 19:17 UTC (permalink / raw)
  To: Boqun Feng; +Cc: linuxppc-dev, Michael Jeanson

Hi Boqun,

I'm trying to build librseq at:

https://git.kernel.org/pub/scm/libs/librseq/librseq.git

on powerpc, and I get these errors when building the rseq basic
test mirrored from the kernel selftests code:

/tmp/ccieEWxU.s: Assembler messages:
/tmp/ccieEWxU.s:118: Error: syntax error; found `,', expected `('
/tmp/ccieEWxU.s:118: Error: junk at end of line: `,8'
/tmp/ccieEWxU.s:121: Error: syntax error; found `,', expected `('
/tmp/ccieEWxU.s:121: Error: junk at end of line: `,8'
/tmp/ccieEWxU.s:626: Error: syntax error; found `,', expected `('
/tmp/ccieEWxU.s:626: Error: junk at end of line: `,8'
/tmp/ccieEWxU.s:629: Error: syntax error; found `,', expected `('
/tmp/ccieEWxU.s:629: Error: junk at end of line: `,8'
/tmp/ccieEWxU.s:735: Error: syntax error; found `,', expected `('
/tmp/ccieEWxU.s:735: Error: junk at end of line: `,8'
/tmp/ccieEWxU.s:738: Error: syntax error; found `,', expected `('
/tmp/ccieEWxU.s:738: Error: junk at end of line: `,8'
/tmp/ccieEWxU.s:741: Error: syntax error; found `,', expected `('
/tmp/ccieEWxU.s:741: Error: junk at end of line: `,8'
Makefile:581: recipe for target 'basic_percpu_ops_test.o' failed

I am using this compiler:

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
Target: powerpc-linux-gnu

So far, I got things to build by changing "m" operands to "Q" operands.
Based on https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints
it seems that "Q" means "A memory operand addressed by just a base register."
I suspect that lwz and stw don't expect some kind of immediate offset which
can be kept with "m", and "Q" fixes this. Is that the right fix ?

And should we change all operands passed to lwz and stw to a "Q" operand ?

Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-07 19:17 Failure to build librseq on ppc Mathieu Desnoyers
@ 2020-07-08  0:59 ` Segher Boessenkool
  2020-07-08 12:27   ` Michael Ellerman
  2020-07-08 12:33   ` Mathieu Desnoyers
  0 siblings, 2 replies; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-08  0:59 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

Hi!

On Tue, Jul 07, 2020 at 03:17:10PM -0400, Mathieu Desnoyers wrote:
> I'm trying to build librseq at:
> 
> https://git.kernel.org/pub/scm/libs/librseq/librseq.git
> 
> on powerpc, and I get these errors when building the rseq basic
> test mirrored from the kernel selftests code:
> 
> /tmp/ccieEWxU.s: Assembler messages:
> /tmp/ccieEWxU.s:118: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:118: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:121: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:121: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:626: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:626: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:629: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:629: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:735: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:735: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:738: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:738: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:741: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:741: Error: junk at end of line: `,8'
> Makefile:581: recipe for target 'basic_percpu_ops_test.o' failed

You'll have to show the actual failing machine code, and with enough
context that we can relate this to the source code.

-save-temps helps, or use -S instead of -c, etc.

> I am using this compiler:
> 
> gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
> Target: powerpc-linux-gnu
> 
> So far, I got things to build by changing "m" operands to "Q" operands.
> Based on https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints
> it seems that "Q" means "A memory operand addressed by just a base register."

Yup.

> I suspect that lwz and stw don't expect some kind of immediate offset which
> can be kept with "m", and "Q" fixes this. Is that the right fix ?
> 
> And should we change all operands passed to lwz and stw to a "Q" operand ?

No, lwz and stw exactly *do* take an immediate offset.

It sounds like the compiler passed memory addressed by indexed
addressing, instead.  Which is fine for "m", and also fine for those
insns... well, you need lwzx and stwx.

So perhaps you have code like

  int *p;
  int x;
  ...
  asm ("lwz %0,%1" : "=r"(x) : "m"(*p));

where that last line should actually read

  asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));

?


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08  0:59 ` Segher Boessenkool
@ 2020-07-08 12:27   ` Michael Ellerman
  2020-07-08 23:53     ` Segher Boessenkool
  2020-07-08 12:33   ` Mathieu Desnoyers
  1 sibling, 1 reply; 22+ messages in thread
From: Michael Ellerman @ 2020-07-08 12:27 UTC (permalink / raw)
  To: Segher Boessenkool, Mathieu Desnoyers
  Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

[-- Attachment #1: Type: text/plain, Size: 6822 bytes --]

Segher Boessenkool <segher@kernel.crashing.org> writes:
> Hi!
>
> On Tue, Jul 07, 2020 at 03:17:10PM -0400, Mathieu Desnoyers wrote:
>> I'm trying to build librseq at:
>> 
>> https://git.kernel.org/pub/scm/libs/librseq/librseq.git
>> 
>> on powerpc, and I get these errors when building the rseq basic
>> test mirrored from the kernel selftests code:
>> 
>> /tmp/ccieEWxU.s: Assembler messages:
>> /tmp/ccieEWxU.s:118: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:118: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:121: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:121: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:626: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:626: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:629: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:629: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:735: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:735: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:738: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:738: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:741: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:741: Error: junk at end of line: `,8'
>> Makefile:581: recipe for target 'basic_percpu_ops_test.o' failed
>
> You'll have to show the actual failing machine code, and with enough
> context that we can relate this to the source code.
>
> -save-temps helps, or use -S instead of -c, etc.

Attached below.

$ gcc -Wall basic_percpu_ops_test.s 
basic_percpu_ops_test.s: Assembler messages:
basic_percpu_ops_test.s:133: Error: operand out of domain (3 is not a multiple of 4)
basic_percpu_ops_test.s:133: Error: syntax error; found `,', expected `('
basic_percpu_ops_test.s:133: Error: junk at end of line: `,8'
basic_percpu_ops_test.s:136: Error: operand out of domain (3 is not a multiple of 4)
basic_percpu_ops_test.s:136: Error: syntax error; found `,', expected `('
basic_percpu_ops_test.s:136: Error: junk at end of line: `,8'
basic_percpu_ops_test.s:818: Error: operand out of domain (3 is not a multiple of 4)
basic_percpu_ops_test.s:818: Error: syntax error; found `,', expected `('
basic_percpu_ops_test.s:818: Error: junk at end of line: `,8'
basic_percpu_ops_test.s:821: Error: operand out of domain (3 is not a multiple of 4)
basic_percpu_ops_test.s:821: Error: syntax error; found `,', expected `('
basic_percpu_ops_test.s:821: Error: junk at end of line: `,8'
basic_percpu_ops_test.s:955: Error: operand out of domain (3 is not a multiple of 4)
basic_percpu_ops_test.s:955: Error: syntax error; found `,', expected `('
basic_percpu_ops_test.s:955: Error: junk at end of line: `,8'
basic_percpu_ops_test.s:958: Error: operand out of domain (3 is not a multiple of 4)
basic_percpu_ops_test.s:958: Error: syntax error; found `,', expected `('
basic_percpu_ops_test.s:958: Error: junk at end of line: `,8'
basic_percpu_ops_test.s:961: Error: operand out of domain (3 is not a multiple of 4)
basic_percpu_ops_test.s:961: Error: syntax error; found `,', expected `('
basic_percpu_ops_test.s:961: Error: junk at end of line: `,8'

$ sed '133!d' basic_percpu_ops_test.s
        ld %r17, 3,8
$ sed '136!d' basic_percpu_ops_test.s
        std 7, 3,8
$ sed '818!d' basic_percpu_ops_test.s
        ld %r17, 3,8
$ sed '821!d' basic_percpu_ops_test.s
        std 4, 3,8
$ sed '955!d' basic_percpu_ops_test.s
        ld %r17, 3,8
$ sed '958!d' basic_percpu_ops_test.s
        ld %r17, 3,8
$ sed '961!d' basic_percpu_ops_test.s
        std %r17, 3,8

 # 211 "../include/rseq/rseq-ppc.h" 1
        .pushsection __rseq_cs, "aw"
        .balign 32
        3:
        .long 0x0, 0x0
        .quad 1f, (2f - 1f), 4f
        .popsection
        .pushsection __rseq_cs_ptr_array, "aw"
        .quad 3b
        .popsection
        .pushsection __rseq_exit_point_array, "aw"
        .quad 1f, .L8
        .popsection
        lis %r17, (3b)@highest
        ori %r17, %r17, (3b)@higher
        rldicr %r17, %r17, 32, 31
        oris %r17, %r17, (3b)@high
        ori %r17, %r17, (3b)@l
        std %r17, 8(9)
        1:
        lwz %r17, 4(9)
        cmpw cr7, 10, %r17
        bne- cr7, 4f
        ld %r17, 3,8			<--- line 133
        cmpd cr7, %r17, 6
        bne- cr7, .L8
        std 7, 3,8
        2:
        .pushsection __rseq_failure, "ax"
        .long 0x0fe5000b
        4:
        b .L8
        .popsection

Tracking back to the source is "interesting", given there's a lot of
macros involved :)

I think that's from:

#define LOAD_WORD       "ld "

#define RSEQ_ASM_OP_CMPEQ(var, expect, label)                                   \
                LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                   \
                CMP_WORD "cr7, %%r17, %[" __rseq_str(expect) "]\n\t"            \
                "bne- cr7, " __rseq_str(label) "\n\t"

static inline __attribute__((always_inline))
int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu)
{
        RSEQ_INJECT_C(9)

        __asm__ __volatile__ goto (
                RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */
                RSEQ_ASM_DEFINE_EXIT_POINT(1f, %l[cmpfail])
#ifdef RSEQ_COMPARE_TWICE
                RSEQ_ASM_DEFINE_EXIT_POINT(1f, %l[error1])
                RSEQ_ASM_DEFINE_EXIT_POINT(1f, %l[error2])
#endif
                /* Start rseq by storing table entry pointer into rseq_cs. */
                RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
                /* cmp cpuid */
                RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, 4f)
                RSEQ_INJECT_ASM(3)
                /* cmp @v equal to @expect */
                RSEQ_ASM_OP_CMPEQ(v, expect, %l[cmpfail])			<----
                RSEQ_INJECT_ASM(4)
#ifdef RSEQ_COMPARE_TWICE
                /* cmp cpuid */
                RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, %l[error1])
                /* cmp @v equal to @expect */
                RSEQ_ASM_OP_CMPEQ(v, expect, %l[error2])
#endif
                /* final store */
                RSEQ_ASM_OP_FINAL_STORE(newv, v, 2)
                RSEQ_INJECT_ASM(5)
                RSEQ_ASM_DEFINE_ABORT(4, abort)
                : /* gcc asm goto does not allow outputs */
                : [cpu_id]              "r" (cpu),
                  [current_cpu_id]      "m" (__rseq_abi.cpu_id),
                  [rseq_cs]             "m" (__rseq_abi.rseq_cs),
                  [v]                   "m" (*v),				<----
                  [expect]              "r" (expect),
                  [newv]                "r" (newv)
                  RSEQ_INJECT_INPUT
                : "memory", "cc", "r17"
                  RSEQ_INJECT_CLOBBER
                : abort, cmpfail
#ifdef RSEQ_COMPARE_TWICE
                  , error1, error2
#endif
        );

cheers


[-- Attachment #2: basic_percpu_ops_test.s --]
[-- Type: text/plain, Size: 121743 bytes --]

	.file	"basic_percpu_ops_test.c"
	.abiversion 2
	.section	".text"
.Ltext0:
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 3
.LC0:
	.string	"basic_percpu_ops_test.c"
	.align 3
.LC1:
	.string	"lock->c[cpu].v == 1"
	.section	".text"
	.align 2
	.p2align 4,,15
	.type	rseq_percpu_unlock.part.0, @function
rseq_percpu_unlock.part.0:
.LFB111:
	.file 1 "basic_percpu_ops_test.c"
	.loc 1 72 6 view -0
	.cfi_startproc
.LCF0:
0:	addis 2,12,.TOC.-.LCF0@ha
	addi 2,2,.TOC.-.LCF0@l
	.localentry	rseq_percpu_unlock.part.0,.-rseq_percpu_unlock.part.0
	mflr 0
	std 0,16(1)
	stdu 1,-32(1)
	.cfi_def_cfa_offset 32
	.cfi_offset 65, 16
.LVL0:
	.loc 1 74 2 view .LVU1
	li 5,74
	addis 6,2,.LANCHOR0@toc@ha
	addis 4,2,.LC0@toc@ha
	addis 3,2,.LC1@toc@ha
	addi 6,6,.LANCHOR0@toc@l
	addi 4,4,.LC0@toc@l
	addi 3,3,.LC1@toc@l
	bl __assert_fail
	nop
.LVL1:
	.long 0
	.byte 0,0,0,1,128,0,0,0
	.cfi_endproc
.LFE111:
	.size	rseq_percpu_unlock.part.0,.-rseq_percpu_unlock.part.0
	.align 2
	.p2align 4,,15
	.globl rseq_this_cpu_lock
	.type	rseq_this_cpu_lock, @function
rseq_this_cpu_lock:
.LVL2:
.LFB101:
	.loc 1 51 1 view -0
	.cfi_startproc
.LCF1:
0:	addis 2,12,.TOC.-.LCF1@ha
	addi 2,2,.TOC.-.LCF1@l
	.localentry	rseq_this_cpu_lock,.-rseq_this_cpu_lock
	.loc 1 51 1 is_stmt 0 view .LVU3
	std 17,-120(1)
	.cfi_offset 17, -120
	addis 9,2,__rseq_abi@got@tprel@ha
.LBB78:
.LBB79:
.LBB80:
	.file 2 "../include/rseq/rseq-ppc.h"
	.loc 2 211 2 view .LVU4
	li 6,0
	ld 9,__rseq_abi@got@tprel@l(9)
	li 7,1
.LBE80:
.LBE79:
.LBB82:
.LBB83:
	.file 3 "../include/rseq/rseq.h"
	.loc 3 142 9 view .LVU5
	add 9,9,__rseq_abi@tls
.L5:
.L8:
.L6:
.LBE83:
.LBE82:
.LBE78:
	.loc 1 52 2 is_stmt 1 view .LVU6
	.loc 1 54 2 view .LVU7
.LBB87:
	.loc 1 55 3 view .LVU8
	.loc 1 57 3 view .LVU9
.LBB85:
.LBI82:
	.loc 3 140 24 view .LVU10
.LBB84:
	.loc 3 142 2 view .LVU11
	.loc 3 142 9 is_stmt 0 view .LVU12
	lwz 10,0(9)
.LBE84:
.LBE85:
	.loc 1 57 7 view .LVU13
	extsw 10,10
.LVL3:
	.loc 1 58 3 is_stmt 1 view .LVU14
.LBB86:
.LBI79:
	.loc 2 207 5 view .LVU15
.LBB81:
	.loc 2 211 2 view .LVU16
	sldi 8,10,7
#APP
 # 211 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.quad 1f, (2f - 1f), 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.quad 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.quad 1f, .L8
	.popsection
	lis %r17, (3b)@highest
	ori %r17, %r17, (3b)@higher
	rldicr %r17, %r17, 32, 31
	oris %r17, %r17, (3b)@high
	ori %r17, %r17, (3b)@l
	std %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	ld %r17, 3,8
	cmpd cr7, %r17, 6
	bne- cr7, .L8
	std 7, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L8
	.popsection
	
 # 0 "" 2
.LVL4:
	.loc 2 211 2 is_stmt 0 view .LVU17
#NO_APP
.LBE81:
.LBE86:
	.loc 1 60 3 is_stmt 1 view .LVU18
.LBE87:
	.loc 1 68 2 view .LVU19
#APP
 # 68 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
	.loc 1 69 2 view .LVU20
	.loc 1 70 1 is_stmt 0 view .LVU21
#NO_APP
	ld 17,-120(1)
	mr 3,10
.LVL5:
	.loc 1 70 1 view .LVU22
	.cfi_restore 17
	blr
	.long 0
	.byte 0,0,0,0,0,15,0,0
	.cfi_endproc
.LFE101:
	.size	rseq_this_cpu_lock,.-rseq_this_cpu_lock
	.section	.rodata.str1.8
	.align 3
.LC3:
	.string	"Error: rseq_register_current_thread(...) failed(%d): %s\n"
	.align 3
.LC4:
	.string	"Error: rseq_unregister_current_thread(...) failed(%d): %s\n"
	.section	".toc","aw"
	.align 3
.LC2:
	.quad	stderr
	.section	".text"
	.align 2
	.p2align 4,,15
	.globl test_percpu_spinlock_thread
	.type	test_percpu_spinlock_thread, @function
test_percpu_spinlock_thread:
.LVL6:
.LFB103:
	.loc 1 83 1 is_stmt 1 view -0
	.cfi_startproc
.LCF2:
0:	addis 2,12,.TOC.-.LCF2@ha
	addi 2,2,.TOC.-.LCF2@l
	.localentry	test_percpu_spinlock_thread,.-test_percpu_spinlock_thread
	.loc 1 83 1 is_stmt 0 view .LVU24
	mflr 0
	std 28,-32(1)
	std 29,-24(1)
	std 30,-16(1)
	std 31,-8(1)
	std 0,16(1)
	stdu 1,-144(1)
	.cfi_def_cfa_offset 144
	.cfi_offset 65, 16
	.cfi_offset 28, -32
	.cfi_offset 29, -24
	.cfi_offset 30, -16
	.cfi_offset 31, -8
	.loc 1 84 2 is_stmt 1 view .LVU25
	.loc 1 83 1 is_stmt 0 view .LVU26
	mr 31,3
.LVL7:
	.loc 1 85 2 is_stmt 1 view .LVU27
	.loc 1 87 2 view .LVU28
	.loc 1 87 6 is_stmt 0 view .LVU29
	bl rseq_register_current_thread
	nop
.LVL8:
	.loc 1 87 5 view .LVU30
	mr. 30,3
	bne 0,.L11
.LVL9:
.LBB98:
.LBB99:
	.loc 1 92 14 is_stmt 1 view .LVU31
	.loc 1 92 22 is_stmt 0 view .LVU32
	addis 29,31,0x4
.LBB100:
.LBB101:
	.loc 1 79 2 view .LVU33
	li 28,0
.LBE101:
.LBE100:
	.loc 1 92 2 view .LVU34
	lwz 9,0(29)
	cmpwi 0,9,0
	ble 0,.L17
.LVL10:
	.p2align 4,,15
.L16:
	.loc 1 93 3 is_stmt 1 view .LVU35
	.loc 1 93 9 is_stmt 0 view .LVU36
	mr 3,31
	bl rseq_this_cpu_lock
.LVL11:
	.loc 1 94 3 is_stmt 1 view .LVU37
	sldi 3,3,7
.LVL12:
	.loc 1 94 3 is_stmt 0 view .LVU38
	add 9,31,3
	.loc 1 94 21 view .LVU39
	addis 9,9,0x2
	ld 10,0(9)
	addi 10,10,1
	std 10,0(9)
	.loc 1 95 3 is_stmt 1 view .LVU40
.LVL13:
.LBB105:
.LBI100:
	.loc 1 72 6 view .LVU41
.LBB102:
	.loc 1 74 2 view .LVU42
	ldx 9,31,3
	cmpdi 0,9,1
	bne 0,.L22
	.loc 1 79 2 view .LVU43
	.loc 1 79 2 view .LVU44
#APP
 # 79 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
	.loc 1 79 2 view .LVU45
#NO_APP
.LBE102:
.LBE105:
	.loc 1 92 2 is_stmt 0 view .LVU46
	lwz 9,0(29)
	.loc 1 92 31 view .LVU47
	addi 10,30,1
.LBB106:
.LBB103:
	.loc 1 79 2 view .LVU48
	stdx 28,31,3
	.loc 1 79 2 is_stmt 1 view .LVU49
.LVL14:
	.loc 1 79 2 is_stmt 0 view .LVU50
.LBE103:
.LBE106:
	.loc 1 92 30 is_stmt 1 view .LVU51
	.loc 1 92 31 is_stmt 0 view .LVU52
	extsw 30,10
.LVL15:
	.loc 1 92 14 is_stmt 1 view .LVU53
	.loc 1 92 2 is_stmt 0 view .LVU54
	cmpw 0,9,10
	bgt 0,.L16
.LVL16:
.L17:
	.loc 1 97 2 is_stmt 1 view .LVU55
	.loc 1 97 6 is_stmt 0 view .LVU56
	bl rseq_unregister_current_thread
	nop
.LVL17:
	.loc 1 97 5 view .LVU57
	cmpdi 0,3,0
	bne 0,.L23
.LBE99:
.LBE98:
	.loc 1 103 2 is_stmt 1 discriminator 1 view .LVU58
	.loc 1 104 1 is_stmt 0 discriminator 1 view .LVU59
	addi 1,1,144
	.cfi_remember_state
	.cfi_def_cfa_offset 0
	ld 0,16(1)
	ld 28,-32(1)
	ld 29,-24(1)
	ld 30,-16(1)
	ld 31,-8(1)
.LVL18:
	.loc 1 104 1 discriminator 1 view .LVU60
	mtlr 0
	.cfi_restore 65
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	blr
.LVL19:
.L22:
	.cfi_restore_state
.LBB114:
.LBB112:
.LBB107:
.LBB104:
	.loc 1 104 1 discriminator 1 view .LVU61
	bl rseq_percpu_unlock.part.0
.LVL20:
.L11:
	.loc 1 104 1 discriminator 1 view .LVU62
.LBE104:
.LBE107:
.LBE112:
.LBE114:
	.loc 1 88 3 is_stmt 1 view .LVU63
	addis 9,2,.LC2@toc@ha
	ld 9,.LC2@toc@l(9)
	ld 31,0(9)
.LVL21:
	.loc 1 89 4 is_stmt 0 view .LVU64
	bl __errno_location
	nop
.LVL22:
	.loc 1 88 3 view .LVU65
	lwa 6,0(3)
	mr 3,6
	std 6,104(1)
	bl strerror
	nop
.LVL23:
.LBB115:
.LBI115:
	.file 4 "/usr/include/powerpc64le-linux-gnu/bits/stdio2.h"
	.loc 4 98 1 is_stmt 1 view .LVU66
.LBB116:
	.loc 4 100 3 view .LVU67
	.loc 4 100 10 is_stmt 0 view .LVU68
	ld 6,104(1)
	addis 5,2,.LC3@toc@ha
	li 4,1
	addi 5,5,.LC3@toc@l
.LBE116:
.LBE115:
	.loc 1 88 3 view .LVU69
	mr 7,3
.LBB118:
.LBB117:
	.loc 4 100 10 view .LVU70
	mr 3,31
	bl __fprintf_chk
	nop
.LVL24:
	.loc 4 100 10 view .LVU71
.LBE117:
.LBE118:
	.loc 1 90 3 is_stmt 1 view .LVU72
	bl abort
	nop
.LVL25:
.L23:
.LBB119:
.LBB113:
	.loc 1 98 3 view .LVU73
	addis 9,2,.LC2@toc@ha
	ld 9,.LC2@toc@l(9)
	ld 31,0(9)
.LVL26:
	.loc 1 99 4 is_stmt 0 view .LVU74
	bl __errno_location
	nop
.LVL27:
	.loc 1 98 3 view .LVU75
	lwa 6,0(3)
	mr 3,6
	std 6,104(1)
	bl strerror
	nop
.LVL28:
.LBB108:
.LBI108:
	.loc 4 98 1 is_stmt 1 view .LVU76
.LBB109:
	.loc 4 100 3 view .LVU77
	.loc 4 100 10 is_stmt 0 view .LVU78
	ld 6,104(1)
	addis 5,2,.LC4@toc@ha
	li 4,1
	addi 5,5,.LC4@toc@l
.LBE109:
.LBE108:
	.loc 1 98 3 view .LVU79
	mr 7,3
.LBB111:
.LBB110:
	.loc 4 100 10 view .LVU80
	mr 3,31
	bl __fprintf_chk
	nop
.LVL29:
	.loc 4 100 10 view .LVU81
.LBE110:
.LBE111:
	.loc 1 100 3 is_stmt 1 view .LVU82
	bl abort
	nop
.LVL30:
.LBE113:
.LBE119:
	.long 0
	.byte 0,0,0,1,128,4,0,0
	.cfi_endproc
.LFE103:
	.size	test_percpu_spinlock_thread,.-test_percpu_spinlock_thread
	.align 2
	.p2align 4,,15
	.globl rseq_percpu_unlock
	.type	rseq_percpu_unlock, @function
rseq_percpu_unlock:
.LVL31:
.LFB102:
	.loc 1 73 1 view -0
	.cfi_startproc
.LCF3:
0:	addis 2,12,.TOC.-.LCF3@ha
	addi 2,2,.TOC.-.LCF3@l
	.localentry	rseq_percpu_unlock,.-rseq_percpu_unlock
	.loc 1 74 2 view .LVU84
	sldi 4,4,7
.LVL32:
	.loc 1 74 2 is_stmt 0 view .LVU85
	ldx 9,3,4
	cmpdi 0,9,1
	bne 0,.L29
	.loc 1 79 2 is_stmt 1 view .LVU86
	.loc 1 79 2 view .LVU87
#APP
 # 79 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
	.loc 1 79 2 view .LVU88
#NO_APP
	li 9,0
	stdx 9,3,4
	.loc 1 79 2 view .LVU89
	blr
.L29:
	.loc 1 73 1 is_stmt 0 discriminator 1 view .LVU90
	mflr 0
	std 0,16(1)
	stdu 1,-32(1)
	.cfi_def_cfa_offset 32
	.cfi_offset 65, 16
	bl rseq_percpu_unlock.part.0
.LVL33:
	.loc 1 73 1 discriminator 1 view .LVU91
	.long 0
	.byte 0,0,0,1,128,0,0,0
	.cfi_endproc
.LFE102:
	.size	rseq_percpu_unlock,.-rseq_percpu_unlock
	.section	.rodata.str1.8
	.align 3
.LC5:
	.string	"sum == (uint64_t)data.reps * num_threads"
	.section	".text"
	.align 2
	.p2align 4,,15
	.globl test_percpu_spinlock
	.type	test_percpu_spinlock, @function
test_percpu_spinlock:
.LFB104:
	.loc 1 113 1 is_stmt 1 view -0
	.cfi_startproc
.LCF4:
0:	addis 2,12,.TOC.-.LCF4@ha
	addi 2,2,.TOC.-.LCF4@l
	.localentry	test_percpu_spinlock,.-test_percpu_spinlock
	.loc 1 113 1 is_stmt 0 view .LVU93
	mflr 0
	addis 12,1,0xfffc
	.cfi_def_cfa 12, 262144
	.cfi_register 65, 0
	std 25,-56(1)
	std 26,-48(1)
	std 27,-40(1)
	std 28,-32(1)
	std 29,-24(1)
	std 30,-16(1)
	std 31,-8(1)
	std 0,16(1)
	.cfi_offset 25, -56
	.cfi_offset 26, -48
	.cfi_offset 27, -40
	.cfi_offset 28, -32
	.cfi_offset 29, -24
	.cfi_offset 30, -16
	.cfi_offset 31, -8
	.cfi_offset 65, 16
	mr 0,1
.LPSRL0:
	stdu 0,-4096(1)
	cmpd 0,1,12
	bne 0,.LPSRL0
	.cfi_def_cfa_register 1
	stdu 0,-352(1)
	.cfi_def_cfa_offset 262496
	lis 10,0x4
	mr 31,1
	.cfi_def_cfa_register 31
	.loc 1 113 1 view .LVU94
	ori 10,10,0x118
	.loc 1 117 12 view .LVU95
	ld 9,0(1)
	.loc 1 113 1 view .LVU96
	add 10,10,31
	addi 6,31,159
	ld 8,-28688(13)
	std 8,0(10)
	li 8,0
	.loc 1 114 2 is_stmt 1 view .LVU97
.LVL34:
	.loc 1 115 2 view .LVU98
	.loc 1 116 2 view .LVU99
	.loc 1 117 2 view .LVU100
	.loc 1 113 1 is_stmt 0 view .LVU101
	rldicr 30,6,0,56
.LBB126:
.LBB127:
	.file 5 "/usr/include/powerpc64le-linux-gnu/bits/string_fortified.h"
	.loc 5 71 10 view .LVU102
	lis 5,0x4
.LBE127:
.LBE126:
	.loc 1 117 12 view .LVU103
	stdu 9,-1600(1)
.LBB131:
.LBB128:
	.loc 5 71 10 view .LVU104
	mr 3,30
	ori 5,5,0x80
	li 4,0
.LBE128:
.LBE131:
	.loc 1 121 12 view .LVU105
	addis 27,30,0x4
	addis 25,2,test_percpu_spinlock_thread@toc@ha
	addi 25,25,test_percpu_spinlock_thread@toc@l
.LBB132:
.LBB129:
	.loc 5 71 10 view .LVU106
	bl memset
	nop
.LVL35:
.LBE129:
.LBE132:
	.loc 1 121 12 view .LVU107
	li 9,5000
	.loc 1 117 12 view .LVU108
	addi 28,1,32
.LVL36:
	.loc 1 118 2 is_stmt 1 view .LVU109
	.loc 1 120 2 view .LVU110
.LBB133:
.LBI126:
	.loc 5 59 1 view .LVU111
.LBB130:
	.loc 5 71 3 view .LVU112
	.loc 5 71 3 is_stmt 0 view .LVU113
.LBE130:
.LBE133:
	.loc 1 121 2 is_stmt 1 view .LVU114
	addi 26,28,1600
	.loc 1 121 12 is_stmt 0 view .LVU115
	mr 29,28
	stw 9,0(27)
	.loc 1 123 2 is_stmt 1 view .LVU116
.LVL37:
	.loc 1 123 14 view .LVU117
	.p2align 5
.L31:
	.loc 1 124 3 discriminator 3 view .LVU118
	mr 3,29
	mr 6,30
	mr 5,25
	li 4,0
	addi 29,29,8
	bl pthread_create
	nop
.LVL38:
	.loc 1 123 31 discriminator 3 view .LVU119
	.loc 1 123 14 discriminator 3 view .LVU120
	.loc 1 123 2 is_stmt 0 discriminator 3 view .LVU121
	cmpld 0,29,26
	bne 0,.L31
	addi 29,28,-8
	addi 28,28,1592
.LVL39:
	.p2align 5
.L32:
	.loc 1 128 3 is_stmt 1 discriminator 3 view .LVU122
	ldu 3,8(29)
	li 4,0
	bl pthread_join
	nop
.LVL40:
	.loc 1 127 31 discriminator 3 view .LVU123
	.loc 1 127 14 discriminator 3 view .LVU124
	.loc 1 127 2 is_stmt 0 discriminator 3 view .LVU125
	cmpld 0,29,28
	bne 0,.L32
	addis 30,30,0x2
	.loc 1 130 6 view .LVU126
	li 9,0
	.p2align 5
.L33:
.LVL41:
	.loc 1 132 3 is_stmt 1 discriminator 3 view .LVU127
	.loc 1 132 7 is_stmt 0 discriminator 3 view .LVU128
	ld 10,0(30)
	addi 30,30,128
	.loc 1 131 2 discriminator 3 view .LVU129
	cmpld 0,27,30
	.loc 1 132 7 discriminator 3 view .LVU130
	add 9,9,10
.LVL42:
	.loc 1 131 31 is_stmt 1 discriminator 3 view .LVU131
	.loc 1 131 14 discriminator 3 view .LVU132
	.loc 1 131 2 is_stmt 0 discriminator 3 view .LVU133
	bne 0,.L33
	.loc 1 134 2 is_stmt 1 view .LVU134
	lwa 10,0(27)
	mulli 10,10,200
	cmpd 0,10,9
	bne 0,.L40
	.loc 1 135 1 is_stmt 0 view .LVU135
	lis 9,0x4
.LVL43:
	.loc 1 135 1 view .LVU136
	ori 9,9,0x118
	add 9,9,31
	ld 10,0(9)
	ld 9,-28688(13)
	xor. 10,10,9
	li 9,0
	bne 0,.L41
	ld 1,0(1)
	.cfi_remember_state
	.cfi_def_cfa 1, 0
	ld 0,16(1)
	ld 25,-56(1)
	ld 26,-48(1)
	ld 27,-40(1)
	ld 28,-32(1)
.LVL44:
	.loc 1 135 1 view .LVU137
	ld 29,-24(1)
	ld 30,-16(1)
	ld 31,-8(1)
	mtlr 0
	.cfi_restore 65
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_restore 27
	.cfi_restore 26
	.cfi_restore 25
	blr
.LVL45:
.L40:
	.cfi_restore_state
.LBB134:
.LBI134:
	.loc 1 112 6 is_stmt 1 view .LVU138
.LBB135:
	.loc 1 134 2 view .LVU139
	addis 6,2,.LANCHOR0+24@toc@ha
	addis 4,2,.LC0@toc@ha
	addis 3,2,.LC5@toc@ha
	addi 6,6,.LANCHOR0+24@toc@l
	li 5,134
	addi 4,4,.LC0@toc@l
	addi 3,3,.LC5@toc@l
	bl __assert_fail
	nop
.LVL46:
.L41:
	.loc 1 134 2 is_stmt 0 view .LVU140
.LBE135:
.LBE134:
	.loc 1 135 1 view .LVU141
	bl __stack_chk_fail
	nop
.LVL47:
	.long 0
	.byte 0,0,0,1,128,7,0,0
	.cfi_endproc
.LFE104:
	.size	test_percpu_spinlock,.-test_percpu_spinlock
	.align 2
	.p2align 4,,15
	.globl this_cpu_list_push
	.type	this_cpu_list_push, @function
this_cpu_list_push:
.LVL48:
.LFB105:
	.loc 1 140 1 is_stmt 1 view -0
	.cfi_startproc
.LCF5:
0:	addis 2,12,.TOC.-.LCF5@ha
	addi 2,2,.TOC.-.LCF5@l
	.localentry	this_cpu_list_push,.-this_cpu_list_push
	.loc 1 140 1 is_stmt 0 view .LVU143
	std 17,-120(1)
	.cfi_offset 17, -120
	addis 9,2,__rseq_abi@got@tprel@ha
	ld 9,__rseq_abi@got@tprel@l(9)
.LBB136:
.LBB137:
.LBB138:
	.loc 3 142 9 view .LVU144
	add 9,9,__rseq_abi@tls
.L43:
.L49:
.L44:
.LBE138:
.LBE137:
.LBE136:
	.loc 1 141 2 is_stmt 1 view .LVU145
	.loc 1 143 2 view .LVU146
.LBB143:
	.loc 1 144 3 view .LVU147
	.loc 1 145 3 view .LVU148
	.loc 1 147 3 view .LVU149
.LBB140:
.LBI137:
	.loc 3 140 24 view .LVU150
.LBB139:
	.loc 3 142 2 view .LVU151
	.loc 3 142 9 is_stmt 0 view .LVU152
	lwz 10,0(9)
.LBE139:
.LBE140:
	.loc 1 147 7 view .LVU153
	extsw 10,10
.LVL49:
	.loc 1 149 3 is_stmt 1 view .LVU154
	.loc 1 149 22 is_stmt 0 view .LVU155
	sldi 8,10,7
	ldx 7,3,8
.LVL50:
	.loc 1 150 3 is_stmt 1 view .LVU156
	.loc 1 151 3 view .LVU157
	.loc 1 152 3 view .LVU158
	.loc 1 152 14 is_stmt 0 view .LVU159
	std 7,8(4)
	.loc 1 153 3 is_stmt 1 view .LVU160
.LVL51:
.LBB141:
.LBI141:
	.loc 2 207 5 view .LVU161
.LBB142:
	.loc 2 211 2 view .LVU162
#APP
 # 211 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.quad 1f, (2f - 1f), 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.quad 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.quad 1f, .L49
	.popsection
	lis %r17, (3b)@highest
	ori %r17, %r17, (3b)@higher
	rldicr %r17, %r17, 32, 31
	oris %r17, %r17, (3b)@high
	ori %r17, %r17, (3b)@l
	std %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	ld %r17, 3,8
	cmpd cr7, %r17, 7
	bne- cr7, .L49
	std 4, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L49
	.popsection
	
 # 0 "" 2
.LVL52:
	.loc 2 211 2 is_stmt 0 view .LVU163
#NO_APP
.LBE142:
.LBE141:
	.loc 1 154 3 is_stmt 1 view .LVU164
.LBE143:
	.loc 1 158 2 view .LVU165
	.loc 1 158 5 is_stmt 0 view .LVU166
	cmpdi 0,5,0
	beq 0,.L42
	.loc 1 159 3 is_stmt 1 view .LVU167
	.loc 1 159 9 is_stmt 0 view .LVU168
	stw 10,0(5)
.L42:
	.loc 1 160 1 view .LVU169
	ld 17,-120(1)
	.cfi_restore 17
	blr
	.long 0
	.byte 0,0,0,0,0,15,0,0
	.cfi_endproc
.LFE105:
	.size	this_cpu_list_push,.-this_cpu_list_push
	.align 2
	.p2align 4,,15
	.globl this_cpu_list_pop
	.type	this_cpu_list_pop, @function
this_cpu_list_pop:
.LVL53:
.LFB106:
	.loc 1 169 1 is_stmt 1 view -0
	.cfi_startproc
.LCF6:
0:	addis 2,12,.TOC.-.LCF6@ha
	addi 2,2,.TOC.-.LCF6@l
	.localentry	this_cpu_list_pop,.-this_cpu_list_pop
	.loc 1 169 1 is_stmt 0 view .LVU171
	std 17,-120(1)
	stdu 1,-176(1)
	.cfi_def_cfa_offset 176
	.cfi_offset 17, -120
.LBB144:
.LBB145:
.LBB146:
	.loc 2 271 2 view .LVU172
	li 6,0
.LBE146:
.LBE145:
.LBE144:
	.loc 1 169 1 view .LVU173
	ld 9,-28688(13)
	std 9,40(1)
	li 9,0
	addis 9,2,__rseq_abi@got@tprel@ha
	ld 9,__rseq_abi@got@tprel@l(9)
.LBB155:
.LBB149:
.LBB150:
	.loc 3 142 9 view .LVU174
	add 9,9,__rseq_abi@tls
.LBE150:
.LBE149:
.LBB152:
.LBB147:
	.loc 2 271 2 view .LVU175
	li 7,8
.L56:
.LBE147:
.LBE152:
.LBE155:
	.loc 1 170 2 is_stmt 1 view .LVU176
.LBB156:
	.loc 1 171 3 view .LVU177
	.loc 1 172 3 view .LVU178
	.loc 1 173 3 view .LVU179
	.loc 1 174 3 view .LVU180
	.loc 1 176 3 view .LVU181
.LBB153:
.LBI149:
	.loc 3 140 24 view .LVU182
.LBB151:
	.loc 3 142 2 view .LVU183
	.loc 3 142 9 is_stmt 0 view .LVU184
	lwz 10,0(9)
.LBE151:
.LBE153:
	.loc 1 176 7 view .LVU185
	extsw 10,10
.LVL54:
	.loc 1 177 3 is_stmt 1 view .LVU186
	.loc 1 178 3 view .LVU187
	.loc 1 179 3 view .LVU188
	.loc 1 180 3 view .LVU189
	.loc 1 181 3 view .LVU190
.LBB154:
.LBI145:
	.loc 2 266 5 view .LVU191
.LBB148:
	.loc 2 271 2 view .LVU192
	sldi 8,10,7
#APP
 # 271 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.quad 1f, (2f - 1f), 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.quad 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.quad 1f, .L58
	.popsection
	lis %r17, (3b)@highest
	ori %r17, %r17, (3b)@higher
	rldicr %r17, %r17, 32, 31
	oris %r17, %r17, (3b)@high
	ori %r17, %r17, (3b)@l
	std %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	ld %r17, 3,8
	cmpd cr7, %r17, 6
	beq- cr7, .L58
	ld %r17, 3,8
	std %r17, 32(1)
	ldx %r17, 7, %r17
	std %r17, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L56
	.popsection
	
 # 0 "" 2
.LVL55:
	.loc 2 271 2 is_stmt 0 view .LVU193
#NO_APP
.LBE148:
.LBE154:
	.loc 1 183 3 is_stmt 1 view .LVU194
	.loc 1 184 4 view .LVU195
	.loc 1 184 7 is_stmt 0 view .LVU196
	cmpdi 0,4,0
	beq 0,.L55
	.loc 1 185 5 is_stmt 1 view .LVU197
	.loc 1 185 11 is_stmt 0 view .LVU198
	stw 10,0(4)
.L55:
	.loc 1 186 4 is_stmt 1 view .LVU199
	.loc 1 186 11 is_stmt 0 view .LVU200
	ld 3,32(1)
.LVL56:
.L52:
	.loc 1 186 11 view .LVU201
.LBE156:
	.loc 1 192 1 view .LVU202
	ld 9,40(1)
	ld 10,-28688(13)
	xor. 9,9,10
	li 10,0
.LVL57:
	.loc 1 192 1 view .LVU203
	bne 0,.L63
	addi 1,1,176
	.cfi_remember_state
	.cfi_def_cfa_offset 0
.LVL58:
	.loc 1 192 1 view .LVU204
	ld 17,-120(1)
	.cfi_restore 17
	blr
.L53:
.LVL59:
	.p2align 4,,15
.L58:
	.cfi_restore_state
.L54:
.LBB157:
	.loc 1 189 11 view .LVU205
	li 3,0
.LVL60:
	.loc 1 189 11 view .LVU206
	b .L52
.LVL61:
.L63:
	.loc 1 189 11 view .LVU207
	mflr 0
	.cfi_register 65, 0
	std 0,192(1)
	.cfi_offset 65, 16
.LBE157:
	.loc 1 192 1 view .LVU208
	bl __stack_chk_fail
	nop
.LVL62:
	.loc 1 192 1 view .LVU209
	.long 0
	.byte 0,0,0,1,128,15,0,0
	.cfi_endproc
.LFE106:
	.size	this_cpu_list_pop,.-this_cpu_list_pop
	.section	".toc","aw"
	.set .LC6,.LC2
	.section	".text"
	.align 2
	.p2align 4,,15
	.globl test_percpu_list_thread
	.type	test_percpu_list_thread, @function
test_percpu_list_thread:
.LVL63:
.LFB108:
	.loc 1 210 1 is_stmt 1 view -0
	.cfi_startproc
.LCF7:
0:	addis 2,12,.TOC.-.LCF7@ha
	addi 2,2,.TOC.-.LCF7@l
	.localentry	test_percpu_list_thread,.-test_percpu_list_thread
	.loc 1 210 1 is_stmt 0 view .LVU211
	mflr 0
	std 29,-24(1)
	std 30,-16(1)
	std 31,-8(1)
	std 0,16(1)
	stdu 1,-144(1)
	.cfi_def_cfa_offset 144
	.cfi_offset 65, 16
	.cfi_offset 29, -24
	.cfi_offset 30, -16
	.cfi_offset 31, -8
	.loc 1 211 2 is_stmt 1 view .LVU212
	.loc 1 212 2 view .LVU213
	lis 31,0x1
	.loc 1 210 1 is_stmt 0 view .LVU214
	mr 29,3
.LVL64:
	.loc 1 214 2 is_stmt 1 view .LVU215
	.loc 1 214 6 is_stmt 0 view .LVU216
	bl rseq_register_current_thread
	nop
.LVL65:
	.loc 1 214 6 view .LVU217
	ori 31,31,0x86a0
	.loc 1 214 5 view .LVU218
	cmpdi 0,3,0
	bne 0,.L74
	.p2align 4,,15
.L65:
.LVL66:
.LBB168:
	.loc 1 221 3 is_stmt 1 view .LVU219
	.loc 1 223 3 view .LVU220
	.loc 1 223 10 is_stmt 0 view .LVU221
	li 4,0
	mr 3,29
	bl this_cpu_list_pop
.LVL67:
	mr 30,3
.LVL68:
	.loc 1 224 3 is_stmt 1 view .LVU222
	bl sched_yield
	nop
.LVL69:
	.loc 1 225 3 view .LVU223
	.loc 1 225 6 is_stmt 0 view .LVU224
	cmpdi 0,30,0
	beq 0,.L66
	.loc 1 226 4 is_stmt 1 view .LVU225
	mr 4,30
	li 5,0
	mr 3,29
	bl this_cpu_list_push
.LVL70:
.L66:
.LBE168:
	.loc 1 220 26 discriminator 2 view .LVU226
	.loc 1 220 14 discriminator 2 view .LVU227
	addi 9,31,-1
	.loc 1 220 2 is_stmt 0 discriminator 2 view .LVU228
	rldicl. 31,9,0,32
.LVL71:
	.loc 1 220 2 discriminator 2 view .LVU229
	bne 0,.L65
	.loc 1 229 2 is_stmt 1 view .LVU230
	.loc 1 229 6 is_stmt 0 view .LVU231
	bl rseq_unregister_current_thread
	nop
.LVL72:
	.loc 1 229 5 view .LVU232
	cmpdi 0,3,0
	bne 0,.L75
	.loc 1 235 2 is_stmt 1 view .LVU233
	.loc 1 236 1 is_stmt 0 view .LVU234
	addi 1,1,144
	.cfi_remember_state
	.cfi_def_cfa_offset 0
	ld 0,16(1)
	ld 29,-24(1)
.LVL73:
	.loc 1 236 1 view .LVU235
	ld 30,-16(1)
.LVL74:
	.loc 1 236 1 view .LVU236
	ld 31,-8(1)
.LVL75:
	.loc 1 236 1 view .LVU237
	mtlr 0
	.cfi_restore 65
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	blr
.LVL76:
.L74:
	.cfi_restore_state
	.loc 1 215 3 is_stmt 1 view .LVU238
	addis 9,2,.LC6@toc@ha
	ld 9,.LC6@toc@l(9)
	ld 31,0(9)
	.loc 1 216 4 is_stmt 0 view .LVU239
	bl __errno_location
	nop
.LVL77:
	.loc 1 215 3 view .LVU240
	lwa 6,0(3)
	mr 3,6
	std 6,104(1)
	bl strerror
	nop
.LVL78:
.LBB169:
.LBI169:
	.loc 4 98 1 is_stmt 1 view .LVU241
.LBB170:
	.loc 4 100 3 view .LVU242
	.loc 4 100 10 is_stmt 0 view .LVU243
	ld 6,104(1)
	addis 5,2,.LC3@toc@ha
	li 4,1
	addi 5,5,.LC3@toc@l
.LBE170:
.LBE169:
	.loc 1 215 3 view .LVU244
	mr 7,3
.LBB172:
.LBB171:
	.loc 4 100 10 view .LVU245
	mr 3,31
	bl __fprintf_chk
	nop
.LVL79:
	.loc 4 100 10 view .LVU246
.LBE171:
.LBE172:
	.loc 1 217 3 is_stmt 1 view .LVU247
	bl abort
	nop
.LVL80:
.L75:
.LBB173:
.LBI173:
	.loc 1 209 7 view .LVU248
.LBB174:
	.loc 1 230 3 view .LVU249
	addis 9,2,.LC6@toc@ha
	ld 9,.LC6@toc@l(9)
	ld 31,0(9)
.LVL81:
	.loc 1 231 4 is_stmt 0 view .LVU250
	bl __errno_location
	nop
.LVL82:
	.loc 1 230 3 view .LVU251
	lwa 6,0(3)
	mr 3,6
	std 6,104(1)
	bl strerror
	nop
.LVL83:
.LBB175:
.LBI175:
	.loc 4 98 1 is_stmt 1 view .LVU252
.LBB176:
	.loc 4 100 3 view .LVU253
	.loc 4 100 10 is_stmt 0 view .LVU254
	ld 6,104(1)
	addis 5,2,.LC4@toc@ha
	li 4,1
	addi 5,5,.LC4@toc@l
.LBE176:
.LBE175:
	.loc 1 230 3 view .LVU255
	mr 7,3
.LBB178:
.LBB177:
	.loc 4 100 10 view .LVU256
	mr 3,31
	bl __fprintf_chk
	nop
.LVL84:
	.loc 4 100 10 view .LVU257
.LBE177:
.LBE178:
	.loc 1 232 3 is_stmt 1 view .LVU258
	bl abort
	nop
.LVL85:
.LBE174:
.LBE173:
	.long 0
	.byte 0,0,0,1,128,3,0,0
	.cfi_endproc
.LFE108:
	.size	test_percpu_list_thread,.-test_percpu_list_thread
	.align 2
	.p2align 4,,15
	.globl __percpu_list_pop
	.type	__percpu_list_pop, @function
__percpu_list_pop:
.LVL86:
.LFB107:
	.loc 1 199 1 view -0
	.cfi_startproc
	.loc 1 200 2 view .LVU260
	.loc 1 202 2 view .LVU261
	sldi 4,4,7
.LVL87:
	.loc 1 199 1 is_stmt 0 view .LVU262
	mr 9,3
	.loc 1 202 7 view .LVU263
	ldx 3,3,4
.LVL88:
	.loc 1 203 2 is_stmt 1 view .LVU264
	.loc 1 203 5 is_stmt 0 view .LVU265
	cmpdi 0,3,0
	beqlr 0
	.loc 1 205 2 is_stmt 1 view .LVU266
	.loc 1 205 20 is_stmt 0 view .LVU267
	ld 10,8(3)
	stdx 10,9,4
	.loc 1 206 2 is_stmt 1 view .LVU268
	.loc 1 207 1 is_stmt 0 view .LVU269
	blr
	.long 0
	.byte 0,0,0,0,0,0,0,0
	.cfi_endproc
.LFE107:
	.size	__percpu_list_pop,.-__percpu_list_pop
	.section	.rodata.str1.8
	.align 3
.LC7:
	.string	"node"
	.align 3
.LC8:
	.string	"sum == expected_sum"
	.section	".text"
	.align 2
	.p2align 4,,15
	.globl test_percpu_list
	.type	test_percpu_list, @function
test_percpu_list:
.LFB109:
	.loc 1 240 1 is_stmt 1 view -0
	.cfi_startproc
.LCF9:
0:	addis 2,12,.TOC.-.LCF9@ha
	addi 2,2,.TOC.-.LCF9@l
	.localentry	test_percpu_list,.-test_percpu_list
	mflr 0
	addis 12,1,0xfffe
	.cfi_def_cfa 12, 131072
	.cfi_register 65, 0
	std 25,-56(1)
	std 26,-48(1)
	std 27,-40(1)
	std 28,-32(1)
	std 29,-24(1)
	std 30,-16(1)
	std 31,-8(1)
	std 0,16(1)
	.cfi_offset 25, -56
	.cfi_offset 26, -48
	.cfi_offset 27, -40
	.cfi_offset 28, -32
	.cfi_offset 29, -24
	.cfi_offset 30, -16
	.cfi_offset 31, -8
	.cfi_offset 65, 16
	mr 0,1
.LPSRL1:
	stdu 0,-4096(1)
	cmpd 0,1,12
	bne 0,.LPSRL1
	.cfi_def_cfa_register 1
	stdu 0,-1952(1)
	.cfi_def_cfa_offset 133024
	.loc 1 240 1 is_stmt 0 view .LVU271
	lis 9,0x2
	addi 26,1,159
	ori 9,9,0x758
	rldicr 26,26,0,56
	add 9,9,1
.LBB179:
.LBB180:
	.loc 5 71 10 view .LVU272
	lis 5,0x2
	li 4,0
	mr 3,26
.LBE180:
.LBE179:
	.loc 1 240 1 view .LVU273
	ld 10,-28688(13)
	std 10,0(9)
	li 10,0
	.loc 1 241 2 is_stmt 1 view .LVU274
	.loc 1 242 2 view .LVU275
.LVL89:
	.loc 1 243 2 view .LVU276
	.loc 1 244 2 view .LVU277
	.loc 1 245 2 view .LVU278
	.loc 1 247 2 view .LVU279
.LBB182:
.LBI179:
	.loc 5 59 1 view .LVU280
.LBB181:
	.loc 5 71 3 view .LVU281
	.loc 5 71 10 is_stmt 0 view .LVU282
	bl memset
	nop
.LVL90:
	.loc 5 71 10 view .LVU283
.LBE181:
.LBE182:
	.loc 1 250 2 is_stmt 1 view .LVU284
	lis 9,0x2
	ori 9,9,0x98
	li 4,128
	add 5,1,9
	li 3,0
	bl sched_getaffinity
	nop
.LVL91:
	.loc 1 251 2 view .LVU285
	.loc 1 251 14 view .LVU286
	mr 28,26
	.loc 1 250 2 is_stmt 0 view .LVU287
	mr 30,26
	li 27,0
	.loc 1 242 20 view .LVU288
	li 29,0
	b .L85
.LVL92:
.L116:
	.loc 1 251 31 is_stmt 1 discriminator 2 view .LVU289
	.loc 1 251 14 discriminator 2 view .LVU290
	addi 27,27,1
.LVL93:
	.loc 1 251 14 is_stmt 0 discriminator 2 view .LVU291
	addi 30,30,128
	.loc 1 251 2 discriminator 2 view .LVU292
	cmpldi 0,27,1024
	beq 0,.L112
.LVL94:
.L85:
	.loc 1 252 3 is_stmt 1 view .LVU293
.LBB183:
	.loc 1 252 8 view .LVU294
	.loc 1 252 8 view .LVU295
	lis 10,0x2
	srdi 9,27,6
	ori 10,10,0x760
	sldi 9,9,3
	add 10,10,1
	rlwinm 31,27,0,26,31
	add 9,10,9
	ld 9,-1736(9)
	srd 31,9,31
	andi. 31,31,0x1
	bne 0,.L84
	.loc 1 252 8 is_stmt 0 view .LVU296
.LBE183:
	.loc 1 251 31 is_stmt 1 view .LVU297
.LVL95:
	.loc 1 251 14 view .LVU298
	addi 27,27,1
.LVL96:
	.loc 1 251 14 is_stmt 0 view .LVU299
	addi 30,30,128
	.loc 1 251 2 view .LVU300
	cmpldi 0,27,1024
	bne 0,.L85
.LVL97:
.L112:
	.loc 1 251 2 view .LVU301
	lis 9,0x2
	addis 27,2,test_percpu_list_thread@toc@ha
	ori 9,9,0x118
	addi 27,27,test_percpu_list_thread@toc@l
	add 30,1,9
	lis 9,0x2
	ori 9,9,0x758
	mr 31,30
	add 25,1,9
	.p2align 5
.L86:
	.loc 1 268 3 is_stmt 1 discriminator 3 view .LVU302
	mr 3,31
	mr 6,26
	mr 5,27
	li 4,0
	addi 31,31,8
	bl pthread_create
	nop
.LVL98:
	.loc 1 267 23 discriminator 3 view .LVU303
	.loc 1 267 14 discriminator 3 view .LVU304
	.loc 1 267 2 is_stmt 0 discriminator 3 view .LVU305
	cmpld 0,25,31
	bne 0,.L86
	lis 9,0x2
	addi 30,30,1592
	ori 9,9,0x110
	add 31,1,9
	.p2align 5
.L87:
	.loc 1 272 3 is_stmt 1 discriminator 3 view .LVU306
	ldu 3,8(31)
	li 4,0
	bl pthread_join
	nop
.LVL99:
	.loc 1 271 23 discriminator 3 view .LVU307
	.loc 1 271 14 discriminator 3 view .LVU308
	.loc 1 271 2 is_stmt 0 discriminator 3 view .LVU309
	cmpld 0,31,30
	bne 0,.L87
	li 30,0
	.loc 1 242 11 view .LVU310
	li 31,0
	b .L90
.LVL100:
	.p2align 4,,15
.L117:
	.loc 1 274 31 is_stmt 1 discriminator 2 view .LVU311
	.loc 1 274 14 discriminator 2 view .LVU312
	addi 30,30,1
.LVL101:
	.loc 1 274 14 is_stmt 0 discriminator 2 view .LVU313
	addi 28,28,128
	.loc 1 274 2 discriminator 2 view .LVU314
	cmpldi 0,30,1024
	beq 0,.L113
.LVL102:
.L90:
.LBB184:
	.loc 1 275 3 is_stmt 1 view .LVU315
	.loc 1 277 3 view .LVU316
.LBB185:
	.loc 1 277 8 view .LVU317
	.loc 1 277 8 view .LVU318
	lis 10,0x2
	srdi 9,30,6
	ori 10,10,0x760
	sldi 9,9,3
	add 10,10,1
	rlwinm 8,30,0,26,31
	add 9,10,9
	ld 10,-1736(9)
	srd 9,10,8
	andi. 9,9,0x1
	bne 0,.L109
	.loc 1 277 8 is_stmt 0 view .LVU319
.LBE185:
.LBE184:
	.loc 1 274 31 is_stmt 1 view .LVU320
.LVL103:
	.loc 1 274 14 view .LVU321
	addi 30,30,1
.LVL104:
	.loc 1 274 14 is_stmt 0 view .LVU322
	addi 28,28,128
	.loc 1 274 2 view .LVU323
	cmpldi 0,30,1024
	bne 0,.L90
.LVL105:
.L113:
	.loc 1 291 2 is_stmt 1 view .LVU324
	cmpld 0,31,29
	bne 0,.L114
	.loc 1 292 1 is_stmt 0 view .LVU325
	lis 9,0x2
	ori 9,9,0x758
	add 9,9,1
	ld 10,0(9)
	ld 9,-28688(13)
	xor. 10,10,9
	li 9,0
	bne 0,.L115
	ld 1,0(1)
	.cfi_remember_state
	.cfi_def_cfa_offset 0
	ld 0,16(1)
	ld 25,-56(1)
	ld 26,-48(1)
	ld 27,-40(1)
	ld 28,-32(1)
	ld 29,-24(1)
.LVL106:
	.loc 1 292 1 view .LVU326
	ld 30,-16(1)
	ld 31,-8(1)
.LVL107:
	.loc 1 292 1 view .LVU327
	mtlr 0
	.cfi_restore 65
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_restore 27
	.cfi_restore 26
	.cfi_restore 25
	blr
.LVL108:
	.p2align 4,,15
.L83:
	.cfi_restore_state
.LBB192:
	.loc 1 261 4 is_stmt 1 discriminator 2 view .LVU328
	.loc 1 261 15 is_stmt 0 discriminator 2 view .LVU329
	std 31,0(3)
	.loc 1 262 4 is_stmt 1 discriminator 2 view .LVU330
	addi 31,31,1
.LVL109:
	.loc 1 262 15 is_stmt 0 discriminator 2 view .LVU331
	ld 10,0(30)
.LBE192:
	.loc 1 254 3 discriminator 2 view .LVU332
	cmpldi 0,31,101
.LBB193:
	.loc 1 263 19 discriminator 2 view .LVU333
	std 3,0(30)
	.loc 1 262 15 discriminator 2 view .LVU334
	std 10,8(3)
	.loc 1 263 4 is_stmt 1 discriminator 2 view .LVU335
.LBE193:
	.loc 1 254 25 discriminator 2 view .LVU336
	.loc 1 254 15 discriminator 2 view .LVU337
	.loc 1 254 3 is_stmt 0 discriminator 2 view .LVU338
	beq 0,.L116
.LVL110:
.L84:
.LBB194:
	.loc 1 255 4 is_stmt 1 view .LVU339
	.loc 1 257 4 view .LVU340
	.loc 1 259 11 is_stmt 0 view .LVU341
	li 3,16
	.loc 1 257 17 view .LVU342
	add 29,29,31
.LVL111:
	.loc 1 259 4 is_stmt 1 view .LVU343
	.loc 1 259 11 is_stmt 0 view .LVU344
	bl malloc
	nop
.LVL112:
	.loc 1 260 4 is_stmt 1 view .LVU345
	cmpdi 0,3,0
	.loc 1 260 4 is_stmt 0 view .LVU346
	bne 0,.L83
	.loc 1 260 4 is_stmt 1 discriminator 1 view .LVU347
	addis 6,2,.LANCHOR0+48@toc@ha
	addis 4,2,.LC0@toc@ha
	addis 3,2,.LC7@toc@ha
.LVL113:
	.loc 1 260 4 is_stmt 0 discriminator 1 view .LVU348
	addi 6,6,.LANCHOR0+48@toc@l
	li 5,260
	addi 4,4,.LC0@toc@l
	addi 3,3,.LC7@toc@l
	bl __assert_fail
	nop
.LVL114:
	.p2align 4,,15
.L89:
	.loc 1 260 4 discriminator 1 view .LVU349
.LBE194:
.LBB195:
.LBB186:
.LBB187:
	.loc 1 205 2 is_stmt 1 view .LVU350
	.loc 1 205 26 is_stmt 0 view .LVU351
	ld 10,8(3)
.LBE187:
.LBE186:
	.loc 1 281 8 view .LVU352
	ld 9,0(3)
.LBB190:
.LBB188:
	.loc 1 205 20 view .LVU353
	std 10,0(28)
	.loc 1 206 2 is_stmt 1 view .LVU354
.LVL115:
	.loc 1 206 2 is_stmt 0 view .LVU355
.LBE188:
.LBE190:
	.loc 1 281 4 is_stmt 1 view .LVU356
	.loc 1 281 8 is_stmt 0 view .LVU357
	add 31,31,9
.LVL116:
	.loc 1 282 4 is_stmt 1 view .LVU358
	bl free
	nop
.LVL117:
.L109:
	.loc 1 280 9 view .LVU359
.LBB191:
.LBI186:
	.loc 1 198 26 view .LVU360
.LBB189:
	.loc 1 200 2 view .LVU361
	.loc 1 202 2 view .LVU362
	.loc 1 202 7 is_stmt 0 view .LVU363
	ld 3,0(28)
.LVL118:
	.loc 1 203 2 is_stmt 1 view .LVU364
	.loc 1 203 5 is_stmt 0 view .LVU365
	cmpdi 0,3,0
	bne 0,.L89
	.loc 1 203 5 view .LVU366
	b .L117
.LVL119:
.L114:
	.loc 1 203 5 view .LVU367
.LBE189:
.LBE191:
.LBE195:
	.loc 1 291 2 is_stmt 1 discriminator 1 view .LVU368
	addis 6,2,.LANCHOR0+48@toc@ha
	addis 4,2,.LC0@toc@ha
	addis 3,2,.LC8@toc@ha
	addi 6,6,.LANCHOR0+48@toc@l
	li 5,291
	addi 4,4,.LC0@toc@l
	addi 3,3,.LC8@toc@l
	bl __assert_fail
	nop
.LVL120:
.L115:
	.loc 1 292 1 is_stmt 0 view .LVU369
	bl __stack_chk_fail
	nop
.LVL121:
	.long 0
	.byte 0,0,0,1,128,7,0,0
	.cfi_endproc
.LFE109:
	.size	test_percpu_list,.-test_percpu_list
	.section	.rodata.str1.8
	.align 3
.LC10:
	.string	"spinlock"
	.align 3
.LC11:
	.string	"percpu_list"
	.section	".toc","aw"
	.set .LC9,.LC2
	.section	.text.startup,"ax",@progbits
	.align 2
	.p2align 4,,15
	.globl main
	.type	main, @function
main:
.LFB110:
	.loc 1 295 1 is_stmt 1 view -0
	.cfi_startproc
.LCF10:
0:	addis 2,12,.TOC.-.LCF10@ha
	addi 2,2,.TOC.-.LCF10@l
	.localentry	main,.-main
	mflr 0
	std 0,16(1)
	stdu 1,-128(1)
	.cfi_def_cfa_offset 128
	.cfi_offset 65, 16
	.loc 1 296 2 view .LVU371
	.loc 1 296 6 is_stmt 0 view .LVU372
	bl rseq_register_current_thread
	nop
.LVL122:
	.loc 1 296 5 view .LVU373
	cmpdi 0,3,0
	bne 0,.L125
	.loc 1 301 2 is_stmt 1 view .LVU374
.LVL123:
.LBB196:
.LBI196:
	.loc 4 105 1 view .LVU375
.LBB197:
	.loc 4 107 3 view .LVU376
	.loc 4 107 10 is_stmt 0 view .LVU377
	addis 3,2,.LC10@toc@ha
	addi 3,3,.LC10@toc@l
	bl puts
	nop
.LVL124:
	.loc 4 107 10 view .LVU378
.LBE197:
.LBE196:
	.loc 1 302 2 is_stmt 1 view .LVU379
	bl test_percpu_spinlock
.LVL125:
	.loc 1 303 2 view .LVU380
.LBB198:
.LBI198:
	.loc 4 105 1 view .LVU381
.LBB199:
	.loc 4 107 3 view .LVU382
	.loc 4 107 10 is_stmt 0 view .LVU383
	addis 3,2,.LC11@toc@ha
	addi 3,3,.LC11@toc@l
	bl puts
	nop
.LVL126:
	.loc 4 107 10 view .LVU384
.LBE199:
.LBE198:
	.loc 1 304 2 is_stmt 1 view .LVU385
	bl test_percpu_list
.LVL127:
	.loc 1 305 2 view .LVU386
	.loc 1 305 6 is_stmt 0 view .LVU387
	bl rseq_unregister_current_thread
	nop
.LVL128:
	.loc 1 305 5 view .LVU388
	cmpdi 0,3,0
	bne 0,.L126
.L120:
	.loc 1 314 1 view .LVU389
	addi 1,1,128
	.cfi_remember_state
	.cfi_def_cfa_offset 0
	ld 0,16(1)
	mtlr 0
	.cfi_restore 65
	blr
.L125:
	.cfi_restore_state
	.loc 1 297 3 is_stmt 1 view .LVU390
	addis 9,2,.LC9@toc@ha
	ld 9,.LC9@toc@l(9)
	std 31,120(1)
	.cfi_offset 31, -8
	ld 31,0(9)
	.loc 1 298 4 is_stmt 0 view .LVU391
	bl __errno_location
	nop
.LVL129:
	.loc 1 297 3 view .LVU392
	lwa 6,0(3)
	mr 3,6
	std 6,104(1)
	bl strerror
	nop
.LVL130:
.LBB200:
.LBI200:
	.loc 4 98 1 is_stmt 1 view .LVU393
.LBB201:
	.loc 4 100 3 view .LVU394
	.loc 4 100 10 is_stmt 0 view .LVU395
	ld 6,104(1)
	addis 5,2,.LC3@toc@ha
	li 4,1
	addi 5,5,.LC3@toc@l
.LBE201:
.LBE200:
	.loc 1 297 3 view .LVU396
	mr 7,3
.LBB203:
.LBB202:
	.loc 4 100 10 view .LVU397
	mr 3,31
	bl __fprintf_chk
	nop
.LVL131:
	.loc 4 100 10 view .LVU398
.LBE202:
.LBE203:
	.loc 1 299 3 is_stmt 1 view .LVU399
	ld 31,120(1)
	.cfi_restore 31
	.loc 1 313 9 is_stmt 0 view .LVU400
	li 3,-1
	.loc 1 299 3 view .LVU401
	b .L120
.L126:
	.loc 1 306 3 is_stmt 1 view .LVU402
	addis 9,2,.LC9@toc@ha
	ld 9,.LC9@toc@l(9)
	std 31,120(1)
	.cfi_offset 31, -8
	.loc 1 306 3 is_stmt 0 view .LVU403
	ld 31,0(9)
	.loc 1 307 4 view .LVU404
	bl __errno_location
	nop
.LVL132:
	.loc 1 306 3 view .LVU405
	lwa 6,0(3)
	mr 3,6
	std 6,104(1)
	bl strerror
	nop
.LVL133:
.LBB204:
.LBI204:
	.loc 4 98 1 is_stmt 1 view .LVU406
.LBB205:
	.loc 4 100 3 view .LVU407
	.loc 4 100 10 is_stmt 0 view .LVU408
	ld 6,104(1)
	addis 5,2,.LC4@toc@ha
	li 4,1
	addi 5,5,.LC4@toc@l
.LBE205:
.LBE204:
	.loc 1 306 3 view .LVU409
	mr 7,3
.LBB207:
.LBB206:
	.loc 4 100 10 view .LVU410
	mr 3,31
	bl __fprintf_chk
	nop
.LVL134:
	.loc 4 100 10 view .LVU411
.LBE206:
.LBE207:
	.loc 1 308 3 is_stmt 1 view .LVU412
	.loc 1 313 9 is_stmt 0 view .LVU413
	ld 31,120(1)
	.cfi_restore 31
	li 3,-1
	.loc 1 308 3 view .LVU414
	b .L120
	.long 0
	.byte 0,0,0,1,128,1,0,0
	.cfi_endproc
.LFE110:
	.size	main,.-main
	.section	.rodata
	.align 3
	.set	.LANCHOR0,. + 0
	.type	__PRETTY_FUNCTION__.6038, @object
	.size	__PRETTY_FUNCTION__.6038, 19
__PRETTY_FUNCTION__.6038:
	.string	"rseq_percpu_unlock"
	.zero	5
	.type	__PRETTY_FUNCTION__.6065, @object
	.size	__PRETTY_FUNCTION__.6065, 21
__PRETTY_FUNCTION__.6065:
	.string	"test_percpu_spinlock"
	.zero	3
	.type	__PRETTY_FUNCTION__.6118, @object
	.size	__PRETTY_FUNCTION__.6118, 17
__PRETTY_FUNCTION__.6118:
	.string	"test_percpu_list"
	.section	".text"
.Letext0:
	.file 6 "/usr/include/powerpc64le-linux-gnu/bits/types.h"
	.file 7 "/usr/lib/gcc/powerpc64le-linux-gnu/9/include/stddef.h"
	.file 8 "/usr/include/powerpc64le-linux-gnu/bits/cpu-set.h"
	.file 9 "/usr/include/time.h"
	.file 10 "/usr/include/powerpc64le-linux-gnu/bits/pthreadtypes.h"
	.file 11 "/usr/include/powerpc64le-linux-gnu/bits/stdint-uintn.h"
	.file 12 "/usr/include/stdint.h"
	.file 13 "/usr/include/powerpc64le-linux-gnu/bits/types/struct_FILE.h"
	.file 14 "/usr/include/powerpc64le-linux-gnu/bits/types/FILE.h"
	.file 15 "/usr/include/stdio.h"
	.file 16 "/usr/include/powerpc64le-linux-gnu/bits/sys_errlist.h"
	.file 17 "/usr/include/signal.h"
	.file 18 "/usr/include/asm-generic/int-l64.h"
	.file 19 "/usr/include/errno.h"
	.file 20 "/usr/include/linux/rseq.h"
	.file 21 "/usr/include/string.h"
	.file 22 "/usr/include/stdlib.h"
	.file 23 "/usr/include/assert.h"
	.file 24 "<built-in>"
	.file 25 "/usr/include/sched.h"
	.file 26 "/usr/include/pthread.h"
	.section	.debug_info,"",@progbits
.Ldebug_info0:
	.4byte	0x196a
	.2byte	0x4
	.4byte	.Ldebug_abbrev0
	.byte	0x8
	.uleb128 0x1
	.4byte	.LASF155
	.byte	0xc
	.4byte	.LASF156
	.4byte	.LASF157
	.4byte	.Ldebug_ranges0+0x490
	.8byte	0
	.4byte	.Ldebug_line0
	.uleb128 0x2
	.byte	0x1
	.byte	0x8
	.4byte	.LASF0
	.uleb128 0x2
	.byte	0x2
	.byte	0x7
	.4byte	.LASF1
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.4byte	.LASF2
	.uleb128 0x2
	.byte	0x8
	.byte	0x7
	.4byte	.LASF3
	.uleb128 0x2
	.byte	0x1
	.byte	0x6
	.4byte	.LASF4
	.uleb128 0x2
	.byte	0x2
	.byte	0x5
	.4byte	.LASF5
	.uleb128 0x3
	.byte	0x4
	.byte	0x5
	.string	"int"
	.uleb128 0x4
	.4byte	0x53
	.uleb128 0x5
	.4byte	.LASF7
	.byte	0x6
	.byte	0x2a
	.byte	0x16
	.4byte	0x37
	.uleb128 0x2
	.byte	0x8
	.byte	0x5
	.4byte	.LASF6
	.uleb128 0x5
	.4byte	.LASF8
	.byte	0x6
	.byte	0x2d
	.byte	0x1b
	.4byte	0x3e
	.uleb128 0x5
	.4byte	.LASF9
	.byte	0x6
	.byte	0x98
	.byte	0x19
	.4byte	0x6b
	.uleb128 0x5
	.4byte	.LASF10
	.byte	0x6
	.byte	0x99
	.byte	0x1b
	.4byte	0x6b
	.uleb128 0x6
	.byte	0x8
	.uleb128 0x7
	.byte	0x8
	.4byte	0x9e
	.uleb128 0x2
	.byte	0x1
	.byte	0x8
	.4byte	.LASF11
	.uleb128 0x4
	.4byte	0x9e
	.uleb128 0x5
	.4byte	.LASF12
	.byte	0x7
	.byte	0xd1
	.byte	0x17
	.4byte	0x3e
	.uleb128 0x5
	.4byte	.LASF13
	.byte	0x8
	.byte	0x20
	.byte	0x19
	.4byte	0x3e
	.uleb128 0x8
	.byte	0x80
	.byte	0x8
	.byte	0x27
	.byte	0x9
	.4byte	0xd9
	.uleb128 0x9
	.4byte	.LASF28
	.byte	0x8
	.byte	0x29
	.byte	0xe
	.4byte	0xd9
	.byte	0
	.byte	0
	.uleb128 0xa
	.4byte	0xb6
	.4byte	0xe9
	.uleb128 0xb
	.4byte	0x3e
	.byte	0xf
	.byte	0
	.uleb128 0x5
	.4byte	.LASF14
	.byte	0x8
	.byte	0x2a
	.byte	0x3
	.4byte	0xc2
	.uleb128 0x7
	.byte	0x8
	.4byte	0xa5
	.uleb128 0x4
	.4byte	0xf5
	.uleb128 0xc
	.4byte	0xf5
	.uleb128 0xa
	.4byte	0x98
	.4byte	0x115
	.uleb128 0xb
	.4byte	0x3e
	.byte	0x1
	.byte	0
	.uleb128 0xd
	.4byte	.LASF15
	.byte	0x9
	.byte	0x9f
	.byte	0xe
	.4byte	0x105
	.uleb128 0xd
	.4byte	.LASF16
	.byte	0x9
	.byte	0xa0
	.byte	0xc
	.4byte	0x53
	.uleb128 0xd
	.4byte	.LASF17
	.byte	0x9
	.byte	0xa1
	.byte	0x11
	.4byte	0x6b
	.uleb128 0xd
	.4byte	.LASF18
	.byte	0x9
	.byte	0xa6
	.byte	0xe
	.4byte	0x105
	.uleb128 0xd
	.4byte	.LASF19
	.byte	0x9
	.byte	0xae
	.byte	0xc
	.4byte	0x53
	.uleb128 0xd
	.4byte	.LASF20
	.byte	0x9
	.byte	0xaf
	.byte	0x11
	.4byte	0x6b
	.uleb128 0xe
	.4byte	.LASF21
	.byte	0x9
	.2byte	0x112
	.byte	0xc
	.4byte	0x53
	.uleb128 0x2
	.byte	0x8
	.byte	0x7
	.4byte	.LASF22
	.uleb128 0x5
	.4byte	.LASF23
	.byte	0xa
	.byte	0x1b
	.byte	0x1b
	.4byte	0x3e
	.uleb128 0x2
	.byte	0x8
	.byte	0x5
	.4byte	.LASF24
	.uleb128 0x5
	.4byte	.LASF25
	.byte	0xb
	.byte	0x1a
	.byte	0x14
	.4byte	0x5f
	.uleb128 0x5
	.4byte	.LASF26
	.byte	0xb
	.byte	0x1b
	.byte	0x14
	.4byte	0x72
	.uleb128 0x5
	.4byte	.LASF27
	.byte	0xc
	.byte	0x57
	.byte	0x13
	.4byte	0x6b
	.uleb128 0xf
	.4byte	.LASF93
	.byte	0xd8
	.byte	0xd
	.byte	0x31
	.byte	0x8
	.4byte	0x32f
	.uleb128 0x9
	.4byte	.LASF29
	.byte	0xd
	.byte	0x33
	.byte	0x7
	.4byte	0x53
	.byte	0
	.uleb128 0x9
	.4byte	.LASF30
	.byte	0xd
	.byte	0x36
	.byte	0x9
	.4byte	0x98
	.byte	0x8
	.uleb128 0x9
	.4byte	.LASF31
	.byte	0xd
	.byte	0x37
	.byte	0x9
	.4byte	0x98
	.byte	0x10
	.uleb128 0x9
	.4byte	.LASF32
	.byte	0xd
	.byte	0x38
	.byte	0x9
	.4byte	0x98
	.byte	0x18
	.uleb128 0x9
	.4byte	.LASF33
	.byte	0xd
	.byte	0x39
	.byte	0x9
	.4byte	0x98
	.byte	0x20
	.uleb128 0x9
	.4byte	.LASF34
	.byte	0xd
	.byte	0x3a
	.byte	0x9
	.4byte	0x98
	.byte	0x28
	.uleb128 0x9
	.4byte	.LASF35
	.byte	0xd
	.byte	0x3b
	.byte	0x9
	.4byte	0x98
	.byte	0x30
	.uleb128 0x9
	.4byte	.LASF36
	.byte	0xd
	.byte	0x3c
	.byte	0x9
	.4byte	0x98
	.byte	0x38
	.uleb128 0x9
	.4byte	.LASF37
	.byte	0xd
	.byte	0x3d
	.byte	0x9
	.4byte	0x98
	.byte	0x40
	.uleb128 0x9
	.4byte	.LASF38
	.byte	0xd
	.byte	0x40
	.byte	0x9
	.4byte	0x98
	.byte	0x48
	.uleb128 0x9
	.4byte	.LASF39
	.byte	0xd
	.byte	0x41
	.byte	0x9
	.4byte	0x98
	.byte	0x50
	.uleb128 0x9
	.4byte	.LASF40
	.byte	0xd
	.byte	0x42
	.byte	0x9
	.4byte	0x98
	.byte	0x58
	.uleb128 0x9
	.4byte	.LASF41
	.byte	0xd
	.byte	0x44
	.byte	0x16
	.4byte	0x348
	.byte	0x60
	.uleb128 0x9
	.4byte	.LASF42
	.byte	0xd
	.byte	0x46
	.byte	0x14
	.4byte	0x34e
	.byte	0x68
	.uleb128 0x9
	.4byte	.LASF43
	.byte	0xd
	.byte	0x48
	.byte	0x7
	.4byte	0x53
	.byte	0x70
	.uleb128 0x9
	.4byte	.LASF44
	.byte	0xd
	.byte	0x49
	.byte	0x7
	.4byte	0x53
	.byte	0x74
	.uleb128 0x9
	.4byte	.LASF45
	.byte	0xd
	.byte	0x4a
	.byte	0xb
	.4byte	0x7e
	.byte	0x78
	.uleb128 0x9
	.4byte	.LASF46
	.byte	0xd
	.byte	0x4d
	.byte	0x12
	.4byte	0x30
	.byte	0x80
	.uleb128 0x9
	.4byte	.LASF47
	.byte	0xd
	.byte	0x4e
	.byte	0xf
	.4byte	0x45
	.byte	0x82
	.uleb128 0x9
	.4byte	.LASF48
	.byte	0xd
	.byte	0x4f
	.byte	0x8
	.4byte	0x354
	.byte	0x83
	.uleb128 0x9
	.4byte	.LASF49
	.byte	0xd
	.byte	0x51
	.byte	0xf
	.4byte	0x364
	.byte	0x88
	.uleb128 0x9
	.4byte	.LASF50
	.byte	0xd
	.byte	0x59
	.byte	0xd
	.4byte	0x8a
	.byte	0x90
	.uleb128 0x9
	.4byte	.LASF51
	.byte	0xd
	.byte	0x5b
	.byte	0x17
	.4byte	0x36f
	.byte	0x98
	.uleb128 0x9
	.4byte	.LASF52
	.byte	0xd
	.byte	0x5c
	.byte	0x19
	.4byte	0x37a
	.byte	0xa0
	.uleb128 0x9
	.4byte	.LASF53
	.byte	0xd
	.byte	0x5d
	.byte	0x14
	.4byte	0x34e
	.byte	0xa8
	.uleb128 0x9
	.4byte	.LASF54
	.byte	0xd
	.byte	0x5e
	.byte	0x9
	.4byte	0x96
	.byte	0xb0
	.uleb128 0x9
	.4byte	.LASF55
	.byte	0xd
	.byte	0x5f
	.byte	0xa
	.4byte	0xaa
	.byte	0xb8
	.uleb128 0x9
	.4byte	.LASF56
	.byte	0xd
	.byte	0x60
	.byte	0x7
	.4byte	0x53
	.byte	0xc0
	.uleb128 0x9
	.4byte	.LASF57
	.byte	0xd
	.byte	0x62
	.byte	0x8
	.4byte	0x380
	.byte	0xc4
	.byte	0
	.uleb128 0x5
	.4byte	.LASF58
	.byte	0xe
	.byte	0x7
	.byte	0x19
	.4byte	0x1a8
	.uleb128 0x10
	.4byte	.LASF158
	.byte	0xd
	.byte	0x2b
	.byte	0xe
	.uleb128 0x11
	.4byte	.LASF59
	.uleb128 0x7
	.byte	0x8
	.4byte	0x343
	.uleb128 0x7
	.byte	0x8
	.4byte	0x1a8
	.uleb128 0xa
	.4byte	0x9e
	.4byte	0x364
	.uleb128 0xb
	.4byte	0x3e
	.byte	0
	.byte	0
	.uleb128 0x7
	.byte	0x8
	.4byte	0x33b
	.uleb128 0x11
	.4byte	.LASF60
	.uleb128 0x7
	.byte	0x8
	.4byte	0x36a
	.uleb128 0x11
	.4byte	.LASF61
	.uleb128 0x7
	.byte	0x8
	.4byte	0x375
	.uleb128 0xa
	.4byte	0x9e
	.4byte	0x390
	.uleb128 0xb
	.4byte	0x3e
	.byte	0x13
	.byte	0
	.uleb128 0x5
	.4byte	.LASF62
	.byte	0xf
	.byte	0x3f
	.byte	0x11
	.4byte	0x7e
	.uleb128 0xd
	.4byte	.LASF63
	.byte	0xf
	.byte	0x89
	.byte	0xe
	.4byte	0x3a8
	.uleb128 0x7
	.byte	0x8
	.4byte	0x32f
	.uleb128 0xc
	.4byte	0x3a8
	.uleb128 0xd
	.4byte	.LASF64
	.byte	0xf
	.byte	0x8a
	.byte	0xe
	.4byte	0x3a8
	.uleb128 0xd
	.4byte	.LASF65
	.byte	0xf
	.byte	0x8b
	.byte	0xe
	.4byte	0x3a8
	.uleb128 0xd
	.4byte	.LASF66
	.byte	0x10
	.byte	0x1a
	.byte	0xc
	.4byte	0x53
	.uleb128 0xa
	.4byte	0xfb
	.4byte	0x3e2
	.uleb128 0x12
	.byte	0
	.uleb128 0x4
	.4byte	0x3d7
	.uleb128 0xd
	.4byte	.LASF67
	.byte	0x10
	.byte	0x1b
	.byte	0x1a
	.4byte	0x3e2
	.uleb128 0xd
	.4byte	.LASF68
	.byte	0x10
	.byte	0x1e
	.byte	0xc
	.4byte	0x53
	.uleb128 0xd
	.4byte	.LASF69
	.byte	0x10
	.byte	0x1f
	.byte	0x1a
	.4byte	0x3e2
	.uleb128 0x2
	.byte	0x10
	.byte	0x4
	.4byte	.LASF70
	.uleb128 0xa
	.4byte	0xfb
	.4byte	0x422
	.uleb128 0xb
	.4byte	0x3e
	.byte	0x40
	.byte	0
	.uleb128 0x4
	.4byte	0x412
	.uleb128 0xe
	.4byte	.LASF71
	.byte	0x11
	.2byte	0x11e
	.byte	0x1a
	.4byte	0x422
	.uleb128 0xe
	.4byte	.LASF72
	.byte	0x11
	.2byte	0x11f
	.byte	0x1a
	.4byte	0x422
	.uleb128 0x5
	.4byte	.LASF73
	.byte	0x12
	.byte	0x1b
	.byte	0x16
	.4byte	0x37
	.uleb128 0x5
	.4byte	.LASF74
	.byte	0x12
	.byte	0x1e
	.byte	0x17
	.4byte	0x3e
	.uleb128 0x2
	.byte	0x8
	.byte	0x4
	.4byte	.LASF75
	.uleb128 0xd
	.4byte	.LASF76
	.byte	0x13
	.byte	0x2d
	.byte	0xe
	.4byte	0x98
	.uleb128 0xd
	.4byte	.LASF77
	.byte	0x13
	.byte	0x2e
	.byte	0xe
	.4byte	0x98
	.uleb128 0x13
	.byte	0x8
	.byte	0x14
	.byte	0x6d
	.byte	0x2
	.4byte	0x49a
	.uleb128 0x14
	.4byte	.LASF78
	.byte	0x14
	.byte	0x6e
	.byte	0x9
	.4byte	0x44d
	.uleb128 0x15
	.string	"ptr"
	.byte	0x14
	.byte	0x70
	.byte	0x9
	.4byte	0x44d
	.byte	0
	.uleb128 0x16
	.4byte	.LASF85
	.byte	0x20
	.byte	0x20
	.byte	0x14
	.byte	0x3e
	.byte	0x8
	.4byte	0x4dd
	.uleb128 0x9
	.4byte	.LASF79
	.byte	0x14
	.byte	0x4b
	.byte	0x8
	.4byte	0x441
	.byte	0
	.uleb128 0x9
	.4byte	.LASF80
	.byte	0x14
	.byte	0x5a
	.byte	0x8
	.4byte	0x441
	.byte	0x4
	.uleb128 0x9
	.4byte	.LASF81
	.byte	0x14
	.byte	0x7c
	.byte	0x4
	.4byte	0x478
	.byte	0x8
	.uleb128 0x9
	.4byte	.LASF82
	.byte	0x14
	.byte	0x90
	.byte	0x8
	.4byte	0x441
	.byte	0x10
	.byte	0
	.uleb128 0xd
	.4byte	.LASF83
	.byte	0x3
	.byte	0x33
	.byte	0x1d
	.4byte	0x49a
	.uleb128 0xd
	.4byte	.LASF84
	.byte	0x3
	.byte	0x34
	.byte	0xc
	.4byte	0x53
	.uleb128 0x16
	.4byte	.LASF86
	.byte	0x80
	.byte	0x80
	.byte	0x1
	.byte	0x12
	.byte	0x8
	.4byte	0x50f
	.uleb128 0x17
	.string	"v"
	.byte	0x1
	.byte	0x13
	.byte	0xb
	.4byte	0x19c
	.byte	0
	.byte	0
	.uleb128 0x18
	.4byte	.LASF87
	.4byte	0x20000
	.byte	0x80
	.byte	0x1
	.byte	0x16
	.byte	0x8
	.4byte	0x52d
	.uleb128 0x19
	.string	"c"
	.byte	0x1
	.byte	0x17
	.byte	0x1b
	.4byte	0x52d
	.byte	0x80
	.byte	0
	.byte	0
	.uleb128 0x1a
	.4byte	0x4f5
	.byte	0x80
	.4byte	0x53f
	.uleb128 0x1b
	.4byte	0x3e
	.2byte	0x3ff
	.byte	0
	.uleb128 0x16
	.4byte	.LASF88
	.byte	0x80
	.byte	0x80
	.byte	0x1
	.byte	0x1a
	.byte	0x8
	.4byte	0x55b
	.uleb128 0x9
	.4byte	.LASF89
	.byte	0x1
	.byte	0x1b
	.byte	0xb
	.4byte	0x19c
	.byte	0
	.byte	0
	.uleb128 0x18
	.4byte	.LASF90
	.4byte	0x40080
	.byte	0x80
	.byte	0x1
	.byte	0x1e
	.byte	0x8
	.4byte	0x59a
	.uleb128 0x1c
	.4byte	.LASF91
	.byte	0x1
	.byte	0x1f
	.byte	0x15
	.4byte	0x50f
	.byte	0x80
	.byte	0
	.uleb128 0x1d
	.string	"c"
	.byte	0x1
	.byte	0x20
	.byte	0x19
	.4byte	0x59a
	.byte	0x80
	.4byte	0x20000
	.uleb128 0x1e
	.4byte	.LASF92
	.byte	0x1
	.byte	0x21
	.byte	0x6
	.4byte	0x53
	.4byte	0x40000
	.byte	0
	.uleb128 0x1a
	.4byte	0x53f
	.byte	0x80
	.4byte	0x5ac
	.uleb128 0x1b
	.4byte	0x3e
	.2byte	0x3ff
	.byte	0
	.uleb128 0xf
	.4byte	.LASF94
	.byte	0x10
	.byte	0x1
	.byte	0x24
	.byte	0x8
	.4byte	0x5d4
	.uleb128 0x9
	.4byte	.LASF95
	.byte	0x1
	.byte	0x25
	.byte	0xb
	.4byte	0x19c
	.byte	0
	.uleb128 0x9
	.4byte	.LASF96
	.byte	0x1
	.byte	0x26
	.byte	0x1b
	.4byte	0x5d4
	.byte	0x8
	.byte	0
	.uleb128 0x7
	.byte	0x8
	.4byte	0x5ac
	.uleb128 0x16
	.4byte	.LASF97
	.byte	0x80
	.byte	0x80
	.byte	0x1
	.byte	0x29
	.byte	0x8
	.4byte	0x5f6
	.uleb128 0x9
	.4byte	.LASF98
	.byte	0x1
	.byte	0x2a
	.byte	0x1b
	.4byte	0x5d4
	.byte	0
	.byte	0
	.uleb128 0x18
	.4byte	.LASF99
	.4byte	0x20000
	.byte	0x80
	.byte	0x1
	.byte	0x2d
	.byte	0x8
	.4byte	0x614
	.uleb128 0x19
	.string	"c"
	.byte	0x1
	.byte	0x2e
	.byte	0x1b
	.4byte	0x614
	.byte	0x80
	.byte	0
	.byte	0
	.uleb128 0x1a
	.4byte	0x5da
	.byte	0x80
	.4byte	0x626
	.uleb128 0x1b
	.4byte	0x3e
	.2byte	0x3ff
	.byte	0
	.uleb128 0x1f
	.4byte	.LASF108
	.byte	0x1
	.2byte	0x126
	.byte	0x5
	.4byte	0x53
	.8byte	.LFB110
	.8byte	.LFE110-.LFB110
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x835
	.uleb128 0x20
	.4byte	.LASF126
	.byte	0x1
	.2byte	0x138
	.byte	0x1
	.uleb128 0x21
	.4byte	0x11b4
	.8byte	.LBI196
	.byte	.LVU375
	.8byte	.LBB196
	.8byte	.LBE196-.LBB196
	.byte	0x1
	.2byte	0x12d
	.byte	0x2
	.4byte	0x6a1
	.uleb128 0x22
	.4byte	0x11c5
	.4byte	.LLST69
	.4byte	.LVUS69
	.uleb128 0x23
	.8byte	.LVL124
	.4byte	0x189d
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC10
	.byte	0
	.byte	0
	.uleb128 0x21
	.4byte	0x11b4
	.8byte	.LBI198
	.byte	.LVU381
	.8byte	.LBB198
	.8byte	.LBE198-.LBB198
	.byte	0x1
	.2byte	0x12f
	.byte	0x2
	.4byte	0x6f0
	.uleb128 0x22
	.4byte	0x11c5
	.4byte	.LLST70
	.4byte	.LVUS70
	.uleb128 0x23
	.8byte	.LVL126
	.4byte	0x189d
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC11
	.byte	0
	.byte	0
	.uleb128 0x25
	.4byte	0x11d3
	.8byte	.LBI200
	.byte	.LVU393
	.4byte	.Ldebug_ranges0+0x430
	.byte	0x1
	.2byte	0x129
	.byte	0x3
	.4byte	0x753
	.uleb128 0x22
	.4byte	0x11f0
	.4byte	.LLST71
	.4byte	.LVUS71
	.uleb128 0x22
	.4byte	0x11e4
	.4byte	.LLST72
	.4byte	.LVUS72
	.uleb128 0x23
	.8byte	.LVL131
	.4byte	0x18b9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC3
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x4
	.byte	0x91
	.sleb128 -24
	.byte	0x94
	.byte	0x4
	.byte	0
	.byte	0
	.uleb128 0x25
	.4byte	0x11d3
	.8byte	.LBI204
	.byte	.LVU406
	.4byte	.Ldebug_ranges0+0x460
	.byte	0x1
	.2byte	0x132
	.byte	0x3
	.4byte	0x7b6
	.uleb128 0x22
	.4byte	0x11f0
	.4byte	.LLST73
	.4byte	.LVUS73
	.uleb128 0x22
	.4byte	0x11e4
	.4byte	.LLST74
	.4byte	.LVUS74
	.uleb128 0x23
	.8byte	.LVL134
	.4byte	0x18b9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC4
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x4
	.byte	0x91
	.sleb128 -24
	.byte	0x94
	.byte	0x4
	.byte	0
	.byte	0
	.uleb128 0x26
	.8byte	.LVL122
	.4byte	0x18c5
	.uleb128 0x26
	.8byte	.LVL125
	.4byte	0xec0
	.uleb128 0x26
	.8byte	.LVL127
	.4byte	0x835
	.uleb128 0x26
	.8byte	.LVL128
	.4byte	0x18d1
	.uleb128 0x26
	.8byte	.LVL129
	.4byte	0x18dd
	.uleb128 0x27
	.8byte	.LVL130
	.4byte	0x18e9
	.4byte	0x811
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x4
	.byte	0x91
	.sleb128 -24
	.byte	0x94
	.byte	0x4
	.byte	0
	.uleb128 0x26
	.8byte	.LVL132
	.4byte	0x18dd
	.uleb128 0x23
	.8byte	.LVL133
	.4byte	0x18e9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x4
	.byte	0x91
	.sleb128 -24
	.byte	0x94
	.byte	0x4
	.byte	0
	.byte	0
	.uleb128 0x28
	.4byte	.LASF115
	.byte	0x1
	.byte	0xef
	.byte	0x6
	.8byte	.LFB109
	.8byte	.LFE109-.LFB109
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xb2b
	.uleb128 0x29
	.string	"i"
	.byte	0x1
	.byte	0xf1
	.byte	0x6
	.4byte	0x53
	.4byte	.LLST56
	.4byte	.LVUS56
	.uleb128 0x29
	.string	"j"
	.byte	0x1
	.byte	0xf1
	.byte	0x9
	.4byte	0x53
	.4byte	.LLST57
	.4byte	.LVUS57
	.uleb128 0x29
	.string	"sum"
	.byte	0x1
	.byte	0xf2
	.byte	0xb
	.4byte	0x190
	.4byte	.LLST58
	.4byte	.LVUS58
	.uleb128 0x2a
	.4byte	.LASF100
	.byte	0x1
	.byte	0xf2
	.byte	0x14
	.4byte	0x190
	.4byte	.LLST59
	.4byte	.LVUS59
	.uleb128 0x2b
	.4byte	.LASF101
	.byte	0x1
	.byte	0xf3
	.byte	0x15
	.4byte	0x5f6
	.uleb128 0x2
	.byte	0x8a
	.sleb128 0
	.uleb128 0x2b
	.4byte	.LASF102
	.byte	0x1
	.byte	0xf4
	.byte	0xc
	.4byte	0xb2b
	.uleb128 0x3
	.byte	0x91
	.sleb128 -1672
	.uleb128 0x2b
	.4byte	.LASF103
	.byte	0x1
	.byte	0xf5
	.byte	0xc
	.4byte	0xe9
	.uleb128 0x3
	.byte	0x91
	.sleb128 -1800
	.uleb128 0x2c
	.4byte	.LASF120
	.4byte	0xb4b
	.uleb128 0x9
	.byte	0x3
	.8byte	__PRETTY_FUNCTION__.6118
	.uleb128 0x2d
	.8byte	.LBB183
	.8byte	.LBE183-.LBB183
	.4byte	0x90b
	.uleb128 0x2a
	.4byte	.LASF104
	.byte	0x1
	.byte	0xfc
	.byte	0x8
	.4byte	0xaa
	.4byte	.LLST63
	.4byte	.LVUS63
	.byte	0
	.uleb128 0x2e
	.4byte	.Ldebug_ranges0+0x3f0
	.4byte	0x97e
	.uleb128 0x2a
	.4byte	.LASF105
	.byte	0x1
	.byte	0xff
	.byte	0x1d
	.4byte	0x5d4
	.4byte	.LLST68
	.4byte	.LVUS68
	.uleb128 0x27
	.8byte	.LVL112
	.4byte	0x18f6
	.4byte	0x93f
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x1
	.byte	0x40
	.byte	0
	.uleb128 0x23
	.8byte	.LVL114
	.4byte	0x1903
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC7
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0xa
	.2byte	0x104
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0xb
	.byte	0x3
	.8byte	.LANCHOR0
	.byte	0x23
	.uleb128 0x30
	.byte	0
	.byte	0
	.uleb128 0x2e
	.4byte	.Ldebug_ranges0+0x380
	.4byte	0xa15
	.uleb128 0x2f
	.4byte	.LASF105
	.byte	0x1
	.2byte	0x113
	.byte	0x1c
	.4byte	0x5d4
	.4byte	.LLST64
	.4byte	.LVUS64
	.uleb128 0x2d
	.8byte	.LBB185
	.8byte	.LBE185-.LBB185
	.4byte	0x9c7
	.uleb128 0x2f
	.4byte	.LASF104
	.byte	0x1
	.2byte	0x115
	.byte	0x8
	.4byte	0xaa
	.4byte	.LLST65
	.4byte	.LVUS65
	.byte	0
	.uleb128 0x25
	.4byte	0xbe1
	.8byte	.LBI186
	.byte	.LVU360
	.4byte	.Ldebug_ranges0+0x3b0
	.byte	0x1
	.2byte	0x118
	.byte	0x12
	.4byte	0xa07
	.uleb128 0x22
	.4byte	0xbfe
	.4byte	.LLST66
	.4byte	.LVUS66
	.uleb128 0x30
	.4byte	0xbf2
	.uleb128 0x31
	.4byte	.Ldebug_ranges0+0x3b0
	.uleb128 0x32
	.4byte	0xc0a
	.4byte	.LLST67
	.4byte	.LVUS67
	.byte	0
	.byte	0
	.uleb128 0x26
	.8byte	.LVL117
	.4byte	0x190f
	.byte	0
	.uleb128 0x33
	.4byte	0x117e
	.8byte	.LBI179
	.byte	.LVU280
	.4byte	.Ldebug_ranges0+0x350
	.byte	0x1
	.byte	0xf7
	.byte	0x2
	.4byte	0xa76
	.uleb128 0x22
	.4byte	0x11a7
	.4byte	.LLST60
	.4byte	.LVUS60
	.uleb128 0x22
	.4byte	0x119b
	.4byte	.LLST61
	.4byte	.LVUS61
	.uleb128 0x22
	.4byte	0x118f
	.4byte	.LLST62
	.4byte	.LVUS62
	.uleb128 0x23
	.8byte	.LVL90
	.4byte	0x191c
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8a
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0x40
	.byte	0x3d
	.byte	0x24
	.byte	0
	.byte	0
	.uleb128 0x27
	.8byte	.LVL91
	.4byte	0x1927
	.4byte	0xa9b
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x8
	.byte	0x80
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x4
	.byte	0x91
	.sleb128 129272
	.byte	0
	.uleb128 0x27
	.8byte	.LVL98
	.4byte	0x1933
	.4byte	0xac4
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 -8
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8b
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8a
	.sleb128 0
	.byte	0
	.uleb128 0x27
	.8byte	.LVL99
	.4byte	0x193f
	.4byte	0xadb
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x27
	.8byte	.LVL120
	.4byte	0x1903
	.4byte	0xb1d
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC8
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0xa
	.2byte	0x123
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0xb
	.byte	0x3
	.8byte	.LANCHOR0
	.byte	0x23
	.uleb128 0x30
	.byte	0
	.uleb128 0x26
	.8byte	.LVL121
	.4byte	0x194b
	.byte	0
	.uleb128 0xa
	.4byte	0x171
	.4byte	0xb3b
	.uleb128 0xb
	.4byte	0x3e
	.byte	0xc7
	.byte	0
	.uleb128 0xa
	.4byte	0xa5
	.4byte	0xb4b
	.uleb128 0xb
	.4byte	0x3e
	.byte	0x10
	.byte	0
	.uleb128 0x4
	.4byte	0xb3b
	.uleb128 0x34
	.4byte	.LASF106
	.byte	0x1
	.byte	0xd1
	.byte	0x7
	.4byte	0x96
	.byte	0x1
	.4byte	0xbdb
	.uleb128 0x35
	.string	"arg"
	.byte	0x1
	.byte	0xd1
	.byte	0x25
	.4byte	0x96
	.uleb128 0x36
	.string	"i"
	.byte	0x1
	.byte	0xd3
	.byte	0x6
	.4byte	0x53
	.uleb128 0x37
	.4byte	.LASF101
	.byte	0x1
	.byte	0xd4
	.byte	0x16
	.4byte	0xbdb
	.uleb128 0x38
	.uleb128 0x37
	.4byte	.LASF105
	.byte	0x1
	.byte	0xdd
	.byte	0x1c
	.4byte	0x5d4
	.uleb128 0x27
	.8byte	.LVL67
	.4byte	0xc17
	.4byte	0xbad
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x26
	.8byte	.LVL69
	.4byte	0x1954
	.uleb128 0x23
	.8byte	.LVL70
	.4byte	0xd8f
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x7
	.byte	0x8
	.4byte	0x5f6
	.uleb128 0x34
	.4byte	.LASF107
	.byte	0x1
	.byte	0xc6
	.byte	0x1a
	.4byte	0x5d4
	.byte	0x1
	.4byte	0xc17
	.uleb128 0x39
	.4byte	.LASF101
	.byte	0x1
	.byte	0xc6
	.byte	0x40
	.4byte	0xbdb
	.uleb128 0x35
	.string	"cpu"
	.byte	0x1
	.byte	0xc6
	.byte	0x4a
	.4byte	0x53
	.uleb128 0x37
	.4byte	.LASF105
	.byte	0x1
	.byte	0xc8
	.byte	0x1b
	.4byte	0x5d4
	.byte	0
	.uleb128 0x3a
	.4byte	.LASF109
	.byte	0x1
	.byte	0xa7
	.byte	0x1a
	.4byte	0x5d4
	.8byte	.LFB106
	.8byte	.LFE106-.LFB106
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xd83
	.uleb128 0x3b
	.4byte	.LASF101
	.byte	0x1
	.byte	0xa7
	.byte	0x40
	.4byte	0xbdb
	.4byte	.LLST34
	.4byte	.LVUS34
	.uleb128 0x3b
	.4byte	.LASF110
	.byte	0x1
	.byte	0xa8
	.byte	0xe
	.4byte	0xd83
	.4byte	.LLST35
	.4byte	.LVUS35
	.uleb128 0x2e
	.4byte	.Ldebug_ranges0+0x230
	.4byte	0xd75
	.uleb128 0x2b
	.4byte	.LASF98
	.byte	0x1
	.byte	0xab
	.byte	0x1c
	.4byte	0x5d4
	.uleb128 0x3
	.byte	0x91
	.sleb128 -144
	.uleb128 0x2a
	.4byte	.LASF111
	.byte	0x1
	.byte	0xac
	.byte	0xd
	.4byte	0xd89
	.4byte	.LLST36
	.4byte	.LVUS36
	.uleb128 0x3c
	.4byte	.LASF112
	.byte	0x1
	.byte	0xac
	.byte	0x18
	.4byte	0x19c
	.byte	0
	.uleb128 0x2a
	.4byte	.LASF113
	.byte	0x1
	.byte	0xac
	.byte	0x24
	.4byte	0xd89
	.4byte	.LLST37
	.4byte	.LVUS37
	.uleb128 0x3c
	.4byte	.LASF114
	.byte	0x1
	.byte	0xad
	.byte	0x9
	.4byte	0x390
	.byte	0x8
	.uleb128 0x29
	.string	"ret"
	.byte	0x1
	.byte	0xae
	.byte	0x7
	.4byte	0x53
	.4byte	.LLST38
	.4byte	.LVUS38
	.uleb128 0x29
	.string	"cpu"
	.byte	0x1
	.byte	0xae
	.byte	0xc
	.4byte	0x53
	.4byte	.LLST39
	.4byte	.LVUS39
	.uleb128 0x33
	.4byte	0x10ca
	.8byte	.LBI145
	.byte	.LVU191
	.4byte	.Ldebug_ranges0+0x280
	.byte	0x1
	.byte	0xb5
	.byte	0x9
	.4byte	0xd5f
	.uleb128 0x22
	.4byte	0x110e
	.4byte	.LLST40
	.4byte	.LVUS40
	.uleb128 0x22
	.4byte	0x1101
	.4byte	.LLST41
	.4byte	.LVUS41
	.uleb128 0x22
	.4byte	0x10f4
	.4byte	.LLST42
	.4byte	.LVUS42
	.uleb128 0x22
	.4byte	0x10e7
	.4byte	.LLST43
	.4byte	.LVUS43
	.uleb128 0x22
	.4byte	0x10dc
	.4byte	.LLST44
	.4byte	.LVUS44
	.uleb128 0x31
	.4byte	.Ldebug_ranges0+0x280
	.uleb128 0x3d
	.4byte	0x111b
	.8byte	.L53
	.uleb128 0x3d
	.4byte	0x1124
	.8byte	.L54
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	0x10bd
	.8byte	.LBI149
	.byte	.LVU182
	.4byte	.Ldebug_ranges0+0x2c0
	.byte	0x1
	.byte	0xb0
	.byte	0x9
	.byte	0
	.uleb128 0x26
	.8byte	.LVL62
	.4byte	0x194b
	.byte	0
	.uleb128 0x7
	.byte	0x8
	.4byte	0x53
	.uleb128 0x7
	.byte	0x8
	.4byte	0x19c
	.uleb128 0x28
	.4byte	.LASF116
	.byte	0x1
	.byte	0x89
	.byte	0x6
	.8byte	.LFB105
	.8byte	.LFE105-.LFB105
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xec0
	.uleb128 0x3f
	.4byte	.LASF101
	.byte	0x1
	.byte	0x89
	.byte	0x2d
	.4byte	0xbdb
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x3f
	.4byte	.LASF105
	.byte	0x1
	.byte	0x8a
	.byte	0x1d
	.4byte	0x5d4
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x3f
	.4byte	.LASF110
	.byte	0x1
	.byte	0x8b
	.byte	0x9
	.4byte	0xd83
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x29
	.string	"cpu"
	.byte	0x1
	.byte	0x8d
	.byte	0x6
	.4byte	0x53
	.4byte	.LLST26
	.4byte	.LVUS26
	.uleb128 0x31
	.4byte	.Ldebug_ranges0+0x1d0
	.uleb128 0x2a
	.4byte	.LASF111
	.byte	0x1
	.byte	0x90
	.byte	0xd
	.4byte	0xd89
	.4byte	.LLST27
	.4byte	.LVUS27
	.uleb128 0x2a
	.4byte	.LASF117
	.byte	0x1
	.byte	0x90
	.byte	0x18
	.4byte	0x19c
	.4byte	.LLST28
	.4byte	.LVUS28
	.uleb128 0x2a
	.4byte	.LASF118
	.byte	0x1
	.byte	0x90
	.byte	0x20
	.4byte	0x19c
	.4byte	.LLST29
	.4byte	.LVUS29
	.uleb128 0x40
	.string	"ret"
	.byte	0x1
	.byte	0x91
	.byte	0x7
	.4byte	0x53
	.byte	0
	.uleb128 0x3e
	.4byte	0x10bd
	.8byte	.LBI137
	.byte	.LVU150
	.4byte	.Ldebug_ranges0+0x200
	.byte	0x1
	.byte	0x93
	.byte	0x9
	.uleb128 0x41
	.4byte	0x112e
	.8byte	.LBI141
	.byte	.LVU161
	.8byte	.LBB141
	.8byte	.LBE141-.LBB141
	.byte	0x1
	.byte	0x99
	.byte	0x9
	.uleb128 0x22
	.4byte	0x1161
	.4byte	.LLST30
	.4byte	.LVUS30
	.uleb128 0x22
	.4byte	0x1155
	.4byte	.LLST31
	.4byte	.LVUS31
	.uleb128 0x22
	.4byte	0x1149
	.4byte	.LLST32
	.4byte	.LVUS32
	.uleb128 0x22
	.4byte	0x113f
	.4byte	.LLST33
	.4byte	.LVUS33
	.uleb128 0x3d
	.4byte	0x116d
	.8byte	.L43
	.uleb128 0x3d
	.4byte	0x1175
	.8byte	.L44
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x42
	.4byte	.LASF122
	.byte	0x1
	.byte	0x70
	.byte	0x6
	.byte	0x1
	.4byte	0xf1b
	.uleb128 0x37
	.4byte	.LASF119
	.byte	0x1
	.byte	0x72
	.byte	0xc
	.4byte	0x5a
	.uleb128 0x36
	.string	"i"
	.byte	0x1
	.byte	0x73
	.byte	0x6
	.4byte	0x53
	.uleb128 0x36
	.string	"sum"
	.byte	0x1
	.byte	0x74
	.byte	0xb
	.4byte	0x190
	.uleb128 0x37
	.4byte	.LASF102
	.byte	0x1
	.byte	0x75
	.byte	0xc
	.4byte	0xf1b
	.uleb128 0x37
	.4byte	.LASF95
	.byte	0x1
	.byte	0x76
	.byte	0x1c
	.4byte	0x55b
	.uleb128 0x2c
	.4byte	.LASF120
	.4byte	0xf3d
	.uleb128 0x9
	.byte	0x3
	.8byte	__PRETTY_FUNCTION__.6065
	.byte	0
	.uleb128 0xa
	.4byte	0x171
	.4byte	0xf2d
	.uleb128 0x43
	.4byte	0x3e
	.uleb128 0x2
	.byte	0x8
	.byte	0xc7
	.byte	0
	.uleb128 0xa
	.4byte	0xa5
	.4byte	0xf3d
	.uleb128 0xb
	.4byte	0x3e
	.byte	0x14
	.byte	0
	.uleb128 0x4
	.4byte	0xf2d
	.uleb128 0x34
	.4byte	.LASF121
	.byte	0x1
	.byte	0x52
	.byte	0x7
	.4byte	0x96
	.byte	0x1
	.4byte	0xf82
	.uleb128 0x35
	.string	"arg"
	.byte	0x1
	.byte	0x52
	.byte	0x29
	.4byte	0x96
	.uleb128 0x37
	.4byte	.LASF95
	.byte	0x1
	.byte	0x54
	.byte	0x1d
	.4byte	0xf82
	.uleb128 0x36
	.string	"i"
	.byte	0x1
	.byte	0x55
	.byte	0x6
	.4byte	0x53
	.uleb128 0x36
	.string	"cpu"
	.byte	0x1
	.byte	0x55
	.byte	0x9
	.4byte	0x53
	.byte	0
	.uleb128 0x7
	.byte	0x8
	.4byte	0x55b
	.uleb128 0x42
	.4byte	.LASF123
	.byte	0x1
	.byte	0x48
	.byte	0x6
	.byte	0x1
	.4byte	0xfc1
	.uleb128 0x39
	.4byte	.LASF91
	.byte	0x1
	.byte	0x48
	.byte	0x2d
	.4byte	0xfc1
	.uleb128 0x35
	.string	"cpu"
	.byte	0x1
	.byte	0x48
	.byte	0x37
	.4byte	0x53
	.uleb128 0x2c
	.4byte	.LASF120
	.4byte	0xfd7
	.uleb128 0x9
	.byte	0x3
	.8byte	__PRETTY_FUNCTION__.6038
	.byte	0
	.uleb128 0x7
	.byte	0x8
	.4byte	0x50f
	.uleb128 0xa
	.4byte	0xa5
	.4byte	0xfd7
	.uleb128 0xb
	.4byte	0x3e
	.byte	0x12
	.byte	0
	.uleb128 0x4
	.4byte	0xfc7
	.uleb128 0x3a
	.4byte	.LASF124
	.byte	0x1
	.byte	0x32
	.byte	0x5
	.4byte	0x53
	.8byte	.LFB101
	.8byte	.LFE101-.LFB101
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x10bd
	.uleb128 0x3b
	.4byte	.LASF91
	.byte	0x1
	.byte	0x32
	.byte	0x2c
	.4byte	0xfc1
	.4byte	.LLST2
	.4byte	.LVUS2
	.uleb128 0x29
	.string	"cpu"
	.byte	0x1
	.byte	0x34
	.byte	0x6
	.4byte	0x53
	.4byte	.LLST3
	.4byte	.LVUS3
	.uleb128 0x31
	.4byte	.Ldebug_ranges0+0
	.uleb128 0x40
	.string	"ret"
	.byte	0x1
	.byte	0x37
	.byte	0x7
	.4byte	0x53
	.byte	0
	.uleb128 0x33
	.4byte	0x112e
	.8byte	.LBI79
	.byte	.LVU15
	.4byte	.Ldebug_ranges0+0x30
	.byte	0x1
	.byte	0x3a
	.byte	0x9
	.4byte	0x10a6
	.uleb128 0x22
	.4byte	0x1161
	.4byte	.LLST4
	.4byte	.LVUS4
	.uleb128 0x22
	.4byte	0x1155
	.4byte	.LLST5
	.4byte	.LVUS5
	.uleb128 0x22
	.4byte	0x1149
	.4byte	.LLST6
	.4byte	.LVUS6
	.uleb128 0x22
	.4byte	0x113f
	.4byte	.LLST7
	.4byte	.LVUS7
	.uleb128 0x31
	.4byte	.Ldebug_ranges0+0x30
	.uleb128 0x3d
	.4byte	0x116d
	.8byte	.L5
	.uleb128 0x3d
	.4byte	0x1175
	.8byte	.L6
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	0x10bd
	.8byte	.LBI82
	.byte	.LVU10
	.4byte	.Ldebug_ranges0+0x60
	.byte	0x1
	.byte	0x39
	.byte	0x9
	.byte	0
	.byte	0
	.uleb128 0x44
	.4byte	.LASF159
	.byte	0x3
	.byte	0x8c
	.byte	0x18
	.4byte	0x184
	.byte	0x3
	.uleb128 0x45
	.4byte	.LASF129
	.byte	0x2
	.2byte	0x10a
	.byte	0x5
	.4byte	0x53
	.byte	0x3
	.4byte	0x112e
	.uleb128 0x46
	.string	"v"
	.byte	0x2
	.2byte	0x10a
	.byte	0x2a
	.4byte	0xd89
	.uleb128 0x47
	.4byte	.LASF112
	.byte	0x2
	.2byte	0x10a
	.byte	0x36
	.4byte	0x19c
	.uleb128 0x47
	.4byte	.LASF125
	.byte	0x2
	.2byte	0x10b
	.byte	0x11
	.4byte	0x390
	.uleb128 0x47
	.4byte	.LASF113
	.byte	0x2
	.2byte	0x10b
	.byte	0x22
	.4byte	0xd89
	.uleb128 0x46
	.string	"cpu"
	.byte	0x2
	.2byte	0x10b
	.byte	0x2c
	.4byte	0x53
	.uleb128 0x20
	.4byte	.LASF127
	.byte	0x2
	.2byte	0x140
	.byte	0x1
	.uleb128 0x20
	.4byte	.LASF128
	.byte	0x2
	.2byte	0x143
	.byte	0x1
	.byte	0
	.uleb128 0x48
	.4byte	.LASF130
	.byte	0x2
	.byte	0xcf
	.byte	0x5
	.4byte	0x53
	.byte	0x3
	.4byte	0x117e
	.uleb128 0x35
	.string	"v"
	.byte	0x2
	.byte	0xcf
	.byte	0x22
	.4byte	0xd89
	.uleb128 0x39
	.4byte	.LASF118
	.byte	0x2
	.byte	0xcf
	.byte	0x2e
	.4byte	0x19c
	.uleb128 0x39
	.4byte	.LASF131
	.byte	0x2
	.byte	0xcf
	.byte	0x3f
	.4byte	0x19c
	.uleb128 0x35
	.string	"cpu"
	.byte	0x2
	.byte	0xcf
	.byte	0x49
	.4byte	0x53
	.uleb128 0x49
	.4byte	.LASF127
	.byte	0x2
	.byte	0xfc
	.byte	0x1
	.uleb128 0x49
	.4byte	.LASF128
	.byte	0x2
	.byte	0xff
	.byte	0x1
	.byte	0
	.uleb128 0x4a
	.4byte	.LASF135
	.byte	0x5
	.byte	0x3b
	.byte	0x1
	.4byte	0x96
	.byte	0x3
	.4byte	0x11b4
	.uleb128 0x39
	.4byte	.LASF132
	.byte	0x5
	.byte	0x3b
	.byte	0x1
	.4byte	0x96
	.uleb128 0x39
	.4byte	.LASF133
	.byte	0x5
	.byte	0x3b
	.byte	0x1
	.4byte	0x53
	.uleb128 0x39
	.4byte	.LASF134
	.byte	0x5
	.byte	0x3b
	.byte	0x1
	.4byte	0xaa
	.byte	0
	.uleb128 0x4a
	.4byte	.LASF136
	.byte	0x4
	.byte	0x69
	.byte	0x1
	.4byte	0x53
	.byte	0x3
	.4byte	0x11d3
	.uleb128 0x39
	.4byte	.LASF137
	.byte	0x4
	.byte	0x69
	.byte	0x20
	.4byte	0x100
	.uleb128 0x4b
	.byte	0
	.uleb128 0x4a
	.4byte	.LASF138
	.byte	0x4
	.byte	0x62
	.byte	0x1
	.4byte	0x53
	.byte	0x3
	.4byte	0x11fe
	.uleb128 0x39
	.4byte	.LASF139
	.byte	0x4
	.byte	0x62
	.byte	0x1b
	.4byte	0x3ae
	.uleb128 0x39
	.4byte	.LASF137
	.byte	0x4
	.byte	0x62
	.byte	0x3c
	.4byte	0x100
	.uleb128 0x4b
	.byte	0
	.uleb128 0x4c
	.4byte	0xf88
	.8byte	.LFB111
	.8byte	.LFE111-.LFB111
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x126f
	.uleb128 0x22
	.4byte	0xfa1
	.4byte	.LLST0
	.4byte	.LVUS0
	.uleb128 0x22
	.4byte	0xf95
	.4byte	.LLST1
	.4byte	.LVUS1
	.uleb128 0x23
	.8byte	.LVL1
	.4byte	0x1903
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC1
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8
	.byte	0x4a
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x9
	.byte	0x3
	.8byte	.LANCHOR0
	.byte	0
	.byte	0
	.uleb128 0x4c
	.4byte	0xf42
	.8byte	.LFB103
	.8byte	.LFE103-.LFB103
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x1490
	.uleb128 0x22
	.4byte	0xf53
	.4byte	.LLST8
	.4byte	.LVUS8
	.uleb128 0x32
	.4byte	0xf5f
	.4byte	.LLST9
	.4byte	.LVUS9
	.uleb128 0x4d
	.4byte	0xf6b
	.uleb128 0x4d
	.4byte	0xf75
	.uleb128 0x4e
	.4byte	0xf42
	.4byte	.Ldebug_ranges0+0x90
	.byte	0x1
	.byte	0x52
	.byte	0x7
	.4byte	0x13ec
	.uleb128 0x30
	.4byte	0xf53
	.uleb128 0x31
	.4byte	.Ldebug_ranges0+0x90
	.uleb128 0x4d
	.4byte	0xf5f
	.uleb128 0x32
	.4byte	0xf6b
	.4byte	.LLST10
	.4byte	.LVUS10
	.uleb128 0x32
	.4byte	0xf75
	.4byte	.LLST11
	.4byte	.LVUS11
	.uleb128 0x33
	.4byte	0xf88
	.8byte	.LBI100
	.byte	.LVU41
	.4byte	.Ldebug_ranges0+0xd0
	.byte	0x1
	.byte	0x5f
	.byte	0x3
	.4byte	0x132f
	.uleb128 0x30
	.4byte	0xfa1
	.uleb128 0x22
	.4byte	0xf95
	.4byte	.LLST12
	.4byte	.LVUS12
	.uleb128 0x31
	.4byte	.Ldebug_ranges0+0xd0
	.uleb128 0x23
	.8byte	.LVL20
	.4byte	0x11fe
	.uleb128 0x4f
	.4byte	0xf95
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x33
	.4byte	0x11d3
	.8byte	.LBI108
	.byte	.LVU76
	.4byte	.Ldebug_ranges0+0x120
	.byte	0x1
	.byte	0x62
	.byte	0x3
	.4byte	0x1391
	.uleb128 0x22
	.4byte	0x11f0
	.4byte	.LLST13
	.4byte	.LVUS13
	.uleb128 0x22
	.4byte	0x11e4
	.4byte	.LLST14
	.4byte	.LVUS14
	.uleb128 0x23
	.8byte	.LVL29
	.4byte	0x18b9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC4
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.byte	0
	.uleb128 0x27
	.8byte	.LVL11
	.4byte	0xfdc
	.4byte	0x13a9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x26
	.8byte	.LVL17
	.4byte	0x18d1
	.uleb128 0x26
	.8byte	.LVL27
	.4byte	0x18dd
	.uleb128 0x27
	.8byte	.LVL28
	.4byte	0x18e9
	.4byte	0x13dd
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.uleb128 0x26
	.8byte	.LVL30
	.4byte	0x1960
	.byte	0
	.byte	0
	.uleb128 0x33
	.4byte	0x11d3
	.8byte	.LBI115
	.byte	.LVU66
	.4byte	.Ldebug_ranges0+0x150
	.byte	0x1
	.byte	0x58
	.byte	0x3
	.4byte	0x144e
	.uleb128 0x22
	.4byte	0x11f0
	.4byte	.LLST15
	.4byte	.LVUS15
	.uleb128 0x22
	.4byte	0x11e4
	.4byte	.LLST16
	.4byte	.LVUS16
	.uleb128 0x23
	.8byte	.LVL24
	.4byte	0x18b9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC3
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.byte	0
	.uleb128 0x26
	.8byte	.LVL8
	.4byte	0x18c5
	.uleb128 0x26
	.8byte	.LVL22
	.4byte	0x18dd
	.uleb128 0x27
	.8byte	.LVL23
	.4byte	0x18e9
	.4byte	0x1482
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.uleb128 0x26
	.8byte	.LVL25
	.4byte	0x1960
	.byte	0
	.uleb128 0x4c
	.4byte	0xf88
	.8byte	.LFB102
	.8byte	.LFE102-.LFB102
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x14d3
	.uleb128 0x22
	.4byte	0xf95
	.4byte	.LLST17
	.4byte	.LVUS17
	.uleb128 0x22
	.4byte	0xfa1
	.4byte	.LLST18
	.4byte	.LVUS18
	.uleb128 0x26
	.8byte	.LVL33
	.4byte	0x11fe
	.byte	0
	.uleb128 0x4c
	.4byte	0xec0
	.8byte	.LFB104
	.8byte	.LFE104-.LFB104
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x1658
	.uleb128 0x50
	.4byte	0xecd
	.byte	0xc8
	.uleb128 0x32
	.4byte	0xed9
	.4byte	.LLST20
	.4byte	.LVUS20
	.uleb128 0x32
	.4byte	0xee3
	.4byte	.LLST21
	.4byte	.LVUS21
	.uleb128 0x51
	.4byte	0xeef
	.4byte	0xf1b
	.4byte	.LLST22
	.4byte	.LVUS22
	.uleb128 0x52
	.4byte	0xefb
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x33
	.4byte	0x117e
	.8byte	.LBI126
	.byte	.LVU111
	.4byte	.Ldebug_ranges0+0x180
	.byte	0x1
	.byte	0x78
	.byte	0x2
	.4byte	0x158a
	.uleb128 0x22
	.4byte	0x11a7
	.4byte	.LLST23
	.4byte	.LVUS23
	.uleb128 0x22
	.4byte	0x119b
	.4byte	.LLST24
	.4byte	.LVUS24
	.uleb128 0x22
	.4byte	0x118f
	.4byte	.LLST25
	.4byte	.LVUS25
	.uleb128 0x23
	.8byte	.LVL35
	.4byte	0x191c
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0xc
	.4byte	0x40080
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0xec0
	.8byte	.LBI134
	.byte	.LVU138
	.8byte	.LBB134
	.8byte	.LBE134-.LBB134
	.byte	0x1
	.byte	0x70
	.byte	0x6
	.4byte	0x160a
	.uleb128 0x4d
	.4byte	0xecd
	.uleb128 0x4d
	.4byte	0xed9
	.uleb128 0x4d
	.4byte	0xee3
	.uleb128 0x54
	.4byte	0xeef
	.4byte	0x1658
	.uleb128 0x4d
	.4byte	0xefb
	.uleb128 0x23
	.8byte	.LVL46
	.4byte	0x1903
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC5
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8
	.byte	0x86
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0xb
	.byte	0x3
	.8byte	.LANCHOR0
	.byte	0x23
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x27
	.8byte	.LVL38
	.4byte	0x1933
	.4byte	0x1633
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 -8
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x89
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.byte	0
	.uleb128 0x27
	.8byte	.LVL40
	.4byte	0x193f
	.4byte	0x164a
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x26
	.8byte	.LVL47
	.4byte	0x194b
	.byte	0
	.uleb128 0xa
	.4byte	0x171
	.4byte	0x1667
	.uleb128 0x55
	.4byte	0x3e
	.byte	0
	.uleb128 0x4c
	.4byte	0xb50
	.8byte	.LFB108
	.8byte	.LFE108-.LFB108
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x184c
	.uleb128 0x22
	.4byte	0xb61
	.4byte	.LLST45
	.4byte	.LVUS45
	.uleb128 0x32
	.4byte	0xb6d
	.4byte	.LLST46
	.4byte	.LVUS46
	.uleb128 0x32
	.4byte	0xb77
	.4byte	.LLST47
	.4byte	.LVUS47
	.uleb128 0x56
	.4byte	0xb83
	.8byte	.LBB168
	.8byte	.LBE168-.LBB168
	.4byte	0x16d0
	.uleb128 0x32
	.4byte	0xb84
	.4byte	.LLST48
	.4byte	.LVUS48
	.byte	0
	.uleb128 0x33
	.4byte	0x11d3
	.8byte	.LBI169
	.byte	.LVU241
	.4byte	.Ldebug_ranges0+0x2f0
	.byte	0x1
	.byte	0xd7
	.byte	0x3
	.4byte	0x1732
	.uleb128 0x22
	.4byte	0x11f0
	.4byte	.LLST49
	.4byte	.LVUS49
	.uleb128 0x22
	.4byte	0x11e4
	.4byte	.LLST50
	.4byte	.LVUS50
	.uleb128 0x23
	.8byte	.LVL79
	.4byte	0x18b9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC3
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0xb50
	.8byte	.LBI173
	.byte	.LVU248
	.8byte	.LBB173
	.8byte	.LBE173-.LBB173
	.byte	0x1
	.byte	0xd1
	.byte	0x7
	.4byte	0x17fd
	.uleb128 0x30
	.4byte	0xb61
	.uleb128 0x4d
	.4byte	0xb6d
	.uleb128 0x4d
	.4byte	0xb77
	.uleb128 0x33
	.4byte	0x11d3
	.8byte	.LBI175
	.byte	.LVU252
	.4byte	.Ldebug_ranges0+0x320
	.byte	0x1
	.byte	0xe6
	.byte	0x3
	.4byte	0x17c8
	.uleb128 0x22
	.4byte	0x11f0
	.4byte	.LLST51
	.4byte	.LVUS51
	.uleb128 0x22
	.4byte	0x11e4
	.4byte	.LLST52
	.4byte	.LVUS52
	.uleb128 0x23
	.8byte	.LVL84
	.4byte	0x18b9
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x9
	.byte	0x3
	.8byte	.LC4
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.byte	0
	.uleb128 0x26
	.8byte	.LVL82
	.4byte	0x18dd
	.uleb128 0x27
	.8byte	.LVL83
	.4byte	0x18e9
	.4byte	0x17ef
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.uleb128 0x26
	.8byte	.LVL85
	.4byte	0x1960
	.byte	0
	.uleb128 0x26
	.8byte	.LVL65
	.4byte	0x18c5
	.uleb128 0x26
	.8byte	.LVL72
	.4byte	0x18d1
	.uleb128 0x26
	.8byte	.LVL77
	.4byte	0x18dd
	.uleb128 0x27
	.8byte	.LVL78
	.4byte	0x18e9
	.4byte	0x183e
	.uleb128 0x24
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x4
	.byte	0x91
	.sleb128 -40
	.byte	0x94
	.byte	0x4
	.byte	0
	.uleb128 0x26
	.8byte	.LVL80
	.4byte	0x1960
	.byte	0
	.uleb128 0x4c
	.4byte	0xbe1
	.8byte	.LFB107
	.8byte	.LFE107-.LFB107
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x188f
	.uleb128 0x22
	.4byte	0xbf2
	.4byte	.LLST53
	.4byte	.LVUS53
	.uleb128 0x22
	.4byte	0xbfe
	.4byte	.LLST54
	.4byte	.LVUS54
	.uleb128 0x32
	.4byte	0xc0a
	.4byte	.LLST55
	.4byte	.LVUS55
	.byte	0
	.uleb128 0x57
	.uleb128 0xc
	.byte	0x9e
	.uleb128 0xa
	.byte	0x73
	.byte	0x70
	.byte	0x69
	.byte	0x6e
	.byte	0x6c
	.byte	0x6f
	.byte	0x63
	.byte	0x6b
	.byte	0xa
	.byte	0
	.uleb128 0x58
	.4byte	.LASF148
	.4byte	.LASF149
	.byte	0x18
	.byte	0
	.uleb128 0x57
	.uleb128 0xf
	.byte	0x9e
	.uleb128 0xd
	.byte	0x70
	.byte	0x65
	.byte	0x72
	.byte	0x63
	.byte	0x70
	.byte	0x75
	.byte	0x5f
	.byte	0x6c
	.byte	0x69
	.byte	0x73
	.byte	0x74
	.byte	0xa
	.byte	0
	.uleb128 0x59
	.4byte	.LASF140
	.4byte	.LASF140
	.byte	0x4
	.byte	0x58
	.byte	0xc
	.uleb128 0x59
	.4byte	.LASF141
	.4byte	.LASF141
	.byte	0x3
	.byte	0x6a
	.byte	0x5
	.uleb128 0x59
	.4byte	.LASF142
	.4byte	.LASF142
	.byte	0x3
	.byte	0x6f
	.byte	0x5
	.uleb128 0x59
	.4byte	.LASF143
	.4byte	.LASF143
	.byte	0x13
	.byte	0x25
	.byte	0xd
	.uleb128 0x5a
	.4byte	.LASF144
	.4byte	.LASF144
	.byte	0x15
	.2byte	0x18d
	.byte	0xe
	.uleb128 0x5a
	.4byte	.LASF145
	.4byte	.LASF145
	.byte	0x16
	.2byte	0x21b
	.byte	0xe
	.uleb128 0x59
	.4byte	.LASF146
	.4byte	.LASF146
	.byte	0x17
	.byte	0x45
	.byte	0xd
	.uleb128 0x5a
	.4byte	.LASF147
	.4byte	.LASF147
	.byte	0x16
	.2byte	0x235
	.byte	0xd
	.uleb128 0x58
	.4byte	.LASF135
	.4byte	.LASF150
	.byte	0x18
	.byte	0
	.uleb128 0x59
	.4byte	.LASF151
	.4byte	.LASF151
	.byte	0x19
	.byte	0x7d
	.byte	0xc
	.uleb128 0x59
	.4byte	.LASF152
	.4byte	.LASF152
	.byte	0x1a
	.byte	0xc6
	.byte	0xc
	.uleb128 0x59
	.4byte	.LASF153
	.4byte	.LASF153
	.byte	0x1a
	.byte	0xd7
	.byte	0xc
	.uleb128 0x5b
	.4byte	.LASF160
	.4byte	.LASF160
	.uleb128 0x59
	.4byte	.LASF154
	.4byte	.LASF154
	.byte	0x19
	.byte	0x44
	.byte	0xc
	.uleb128 0x5a
	.4byte	.LASF127
	.4byte	.LASF127
	.byte	0x16
	.2byte	0x24f
	.byte	0xd
	.byte	0
	.section	.debug_abbrev,"",@progbits
.Ldebug_abbrev0:
	.uleb128 0x1
	.uleb128 0x11
	.byte	0x1
	.uleb128 0x25
	.uleb128 0xe
	.uleb128 0x13
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x1b
	.uleb128 0xe
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x10
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x2
	.uleb128 0x24
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.byte	0
	.byte	0
	.uleb128 0x3
	.uleb128 0x24
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0x8
	.byte	0
	.byte	0
	.uleb128 0x4
	.uleb128 0x26
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x5
	.uleb128 0x16
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x6
	.uleb128 0xf
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x7
	.uleb128 0xf
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x8
	.uleb128 0x13
	.byte	0x1
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x9
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xa
	.uleb128 0x1
	.byte	0x1
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xb
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xc
	.uleb128 0x37
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xd
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.byte	0
	.byte	0
	.uleb128 0xe
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.byte	0
	.byte	0
	.uleb128 0xf
	.uleb128 0x13
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x10
	.uleb128 0x16
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x11
	.uleb128 0x13
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3c
	.uleb128 0x19
	.byte	0
	.byte	0
	.uleb128 0x12
	.uleb128 0x21
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x13
	.uleb128 0x17
	.byte	0x1
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x14
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x15
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x16
	.uleb128 0x13
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x88
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x17
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x18
	.uleb128 0x13
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0xb
	.uleb128 0x6
	.uleb128 0x88
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x19
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x88
	.uleb128 0xb
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x1a
	.uleb128 0x1
	.byte	0x1
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x88
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x1b
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0x5
	.byte	0
	.byte	0
	.uleb128 0x1c
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x88
	.uleb128 0xb
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x1d
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x88
	.uleb128 0xb
	.uleb128 0x38
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x1e
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x1f
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x20
	.uleb128 0xa
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x21
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x2138
	.uleb128 0xb
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0x5
	.uleb128 0x57
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x22
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.uleb128 0x2137
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x23
	.uleb128 0x4109
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x24
	.uleb128 0x410a
	.byte	0
	.uleb128 0x2
	.uleb128 0x18
	.uleb128 0x2111
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x25
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x2138
	.uleb128 0xb
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0x5
	.uleb128 0x57
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x26
	.uleb128 0x4109
	.byte	0
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x27
	.uleb128 0x4109
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x28
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x29
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.uleb128 0x2137
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x2a
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.uleb128 0x2137
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x2b
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2c
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2d
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x2e
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x2f
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.uleb128 0x2137
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x30
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x31
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x55
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x32
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.uleb128 0x2137
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x33
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x2138
	.uleb128 0xb
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x57
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x34
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x35
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x36
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x37
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x38
	.uleb128 0xb
	.byte	0x1
	.byte	0
	.byte	0
	.uleb128 0x39
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3a
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3b
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.uleb128 0x2137
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x3c
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1c
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x3d
	.uleb128 0xa
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.byte	0
	.byte	0
	.uleb128 0x3e
	.uleb128 0x1d
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x2138
	.uleb128 0xb
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x57
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x3f
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x40
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1c
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x41
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x2138
	.uleb128 0xb
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x57
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x42
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x43
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x44
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x45
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x46
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x47
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x48
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x49
	.uleb128 0xa
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x4a
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x4b
	.uleb128 0x18
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x4c
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x4d
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x4e
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x57
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x4f
	.uleb128 0x410a
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2111
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x50
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x1c
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x51
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.uleb128 0x2137
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x52
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x53
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x2138
	.uleb128 0xb
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x57
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x54
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x55
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x56
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x7
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x57
	.uleb128 0x36
	.byte	0
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x58
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x59
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x39
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x5a
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x39
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x5b
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.byte	0
	.byte	0
	.byte	0
	.section	.debug_loc,"",@progbits
.Ldebug_loc0:
.LVUS69:
	.uleb128 .LVU375
	.uleb128 .LVU378
.LLST69:
	.8byte	.LVL123
	.8byte	.LVL124
	.2byte	0x6
	.byte	0xf2
	.4byte	.Ldebug_info0+6287
	.sleb128 0
	.8byte	0
	.8byte	0
.LVUS70:
	.uleb128 .LVU381
	.uleb128 .LVU384
.LLST70:
	.8byte	.LVL125
	.8byte	.LVL126
	.2byte	0x6
	.byte	0xf2
	.4byte	.Ldebug_info0+6312
	.sleb128 0
	.8byte	0
	.8byte	0
.LVUS71:
	.uleb128 .LVU393
	.uleb128 .LVU398
.LLST71:
	.8byte	.LVL130
	.8byte	.LVL131
	.2byte	0xa
	.byte	0x3
	.8byte	.LC3
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS72:
	.uleb128 .LVU393
	.uleb128 .LVU398
.LLST72:
	.8byte	.LVL130
	.8byte	.LVL131
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS73:
	.uleb128 .LVU406
	.uleb128 .LVU411
.LLST73:
	.8byte	.LVL133
	.8byte	.LVL134
	.2byte	0xa
	.byte	0x3
	.8byte	.LC4
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS74:
	.uleb128 .LVU406
	.uleb128 .LVU411
.LLST74:
	.8byte	.LVL133
	.8byte	.LVL134
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS56:
	.uleb128 .LVU286
	.uleb128 .LVU289
	.uleb128 .LVU289
	.uleb128 .LVU290
	.uleb128 .LVU290
	.uleb128 .LVU291
	.uleb128 .LVU293
	.uleb128 .LVU298
	.uleb128 .LVU298
	.uleb128 .LVU299
	.uleb128 .LVU311
	.uleb128 .LVU312
	.uleb128 .LVU312
	.uleb128 .LVU313
	.uleb128 .LVU315
	.uleb128 .LVU321
	.uleb128 .LVU321
	.uleb128 .LVU322
	.uleb128 .LVU328
	.uleb128 .LVU349
	.uleb128 .LVU349
	.uleb128 .LVU367
.LLST56:
	.8byte	.LVL91
	.8byte	.LVL92
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	.LVL92
	.8byte	.LVL92
	.2byte	0x1
	.byte	0x6b
	.8byte	.LVL92
	.8byte	.LVL93
	.2byte	0x3
	.byte	0x8b
	.sleb128 1
	.byte	0x9f
	.8byte	.LVL94
	.8byte	.LVL95
	.2byte	0x1
	.byte	0x6b
	.8byte	.LVL95
	.8byte	.LVL96
	.2byte	0x3
	.byte	0x8b
	.sleb128 1
	.byte	0x9f
	.8byte	.LVL100
	.8byte	.LVL100
	.2byte	0x1
	.byte	0x6e
	.8byte	.LVL100
	.8byte	.LVL101
	.2byte	0x3
	.byte	0x8e
	.sleb128 1
	.byte	0x9f
	.8byte	.LVL102
	.8byte	.LVL103
	.2byte	0x1
	.byte	0x6e
	.8byte	.LVL103
	.8byte	.LVL104
	.2byte	0x3
	.byte	0x8e
	.sleb128 1
	.byte	0x9f
	.8byte	.LVL108
	.8byte	.LVL114
	.2byte	0x1
	.byte	0x6b
	.8byte	.LVL114
	.8byte	.LVL119
	.2byte	0x1
	.byte	0x6e
	.8byte	0
	.8byte	0
.LVUS57:
	.uleb128 .LVU328
	.uleb128 .LVU331
	.uleb128 .LVU339
	.uleb128 .LVU349
.LLST57:
	.8byte	.LVL108
	.8byte	.LVL109
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL110
	.8byte	.LVL114
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS58:
	.uleb128 .LVU276
	.uleb128 .LVU311
	.uleb128 .LVU311
	.uleb128 .LVU327
	.uleb128 .LVU328
	.uleb128 .LVU349
	.uleb128 .LVU349
	.uleb128 0
.LLST58:
	.8byte	.LVL89
	.8byte	.LVL100
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	.LVL100
	.8byte	.LVL107
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL108
	.8byte	.LVL114
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	.LVL114
	.8byte	.LFE109
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS59:
	.uleb128 .LVU276
	.uleb128 .LVU289
	.uleb128 .LVU289
	.uleb128 .LVU326
	.uleb128 .LVU328
	.uleb128 0
.LLST59:
	.8byte	.LVL89
	.8byte	.LVL92
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	.LVL92
	.8byte	.LVL106
	.2byte	0x1
	.byte	0x6d
	.8byte	.LVL108
	.8byte	.LFE109
	.2byte	0x1
	.byte	0x6d
	.8byte	0
	.8byte	0
.LVUS63:
	.uleb128 .LVU289
	.uleb128 .LVU291
	.uleb128 .LVU291
	.uleb128 .LVU293
	.uleb128 .LVU295
	.uleb128 .LVU299
	.uleb128 .LVU299
	.uleb128 .LVU301
	.uleb128 .LVU328
	.uleb128 .LVU349
.LLST63:
	.8byte	.LVL92
	.8byte	.LVL93
	.2byte	0x1
	.byte	0x6b
	.8byte	.LVL93
	.8byte	.LVL94
	.2byte	0x3
	.byte	0x8b
	.sleb128 -1
	.byte	0x9f
	.8byte	.LVL94
	.8byte	.LVL96
	.2byte	0x1
	.byte	0x6b
	.8byte	.LVL96
	.8byte	.LVL97
	.2byte	0x3
	.byte	0x8b
	.sleb128 -1
	.byte	0x9f
	.8byte	.LVL108
	.8byte	.LVL114
	.2byte	0x1
	.byte	0x6b
	.8byte	0
	.8byte	0
.LVUS68:
	.uleb128 .LVU289
	.uleb128 .LVU293
	.uleb128 .LVU328
	.uleb128 .LVU339
	.uleb128 .LVU345
	.uleb128 .LVU348
.LLST68:
	.8byte	.LVL92
	.8byte	.LVL94
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL108
	.8byte	.LVL110
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL112
	.8byte	.LVL113
	.2byte	0x1
	.byte	0x53
	.8byte	0
	.8byte	0
.LVUS64:
	.uleb128 .LVU355
	.uleb128 .LVU359
.LLST64:
	.8byte	.LVL115
	.8byte	.LVL117-1
	.2byte	0x1
	.byte	0x53
	.8byte	0
	.8byte	0
.LVUS65:
	.uleb128 .LVU311
	.uleb128 .LVU313
	.uleb128 .LVU313
	.uleb128 .LVU315
	.uleb128 .LVU318
	.uleb128 .LVU322
	.uleb128 .LVU322
	.uleb128 .LVU324
	.uleb128 .LVU349
	.uleb128 .LVU367
.LLST65:
	.8byte	.LVL100
	.8byte	.LVL101
	.2byte	0x1
	.byte	0x6e
	.8byte	.LVL101
	.8byte	.LVL102
	.2byte	0x3
	.byte	0x8e
	.sleb128 -1
	.byte	0x9f
	.8byte	.LVL102
	.8byte	.LVL104
	.2byte	0x1
	.byte	0x6e
	.8byte	.LVL104
	.8byte	.LVL105
	.2byte	0x3
	.byte	0x8e
	.sleb128 -1
	.byte	0x9f
	.8byte	.LVL114
	.8byte	.LVL119
	.2byte	0x1
	.byte	0x6e
	.8byte	0
	.8byte	0
.LVUS66:
	.uleb128 .LVU349
	.uleb128 .LVU355
	.uleb128 .LVU360
	.uleb128 .LVU367
.LLST66:
	.8byte	.LVL114
	.8byte	.LVL115
	.2byte	0x1
	.byte	0x6e
	.8byte	.LVL117
	.8byte	.LVL119
	.2byte	0x1
	.byte	0x6e
	.8byte	0
	.8byte	0
.LVUS67:
	.uleb128 .LVU349
	.uleb128 .LVU355
	.uleb128 .LVU364
	.uleb128 .LVU367
.LLST67:
	.8byte	.LVL114
	.8byte	.LVL115
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL118
	.8byte	.LVL119
	.2byte	0x1
	.byte	0x53
	.8byte	0
	.8byte	0
.LVUS60:
	.uleb128 .LVU280
	.uleb128 .LVU283
.LLST60:
	.8byte	.LVL89
	.8byte	.LVL90
	.2byte	0x4
	.byte	0x40
	.byte	0x3d
	.byte	0x24
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS61:
	.uleb128 .LVU280
	.uleb128 .LVU283
.LLST61:
	.8byte	.LVL89
	.8byte	.LVL90
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS62:
	.uleb128 .LVU280
	.uleb128 .LVU283
	.uleb128 .LVU283
	.uleb128 .LVU283
.LLST62:
	.8byte	.LVL89
	.8byte	.LVL90-1
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL90-1
	.8byte	.LVL90
	.2byte	0x1
	.byte	0x6a
	.8byte	0
	.8byte	0
.LVUS34:
	.uleb128 0
	.uleb128 .LVU201
	.uleb128 .LVU201
	.uleb128 .LVU205
	.uleb128 .LVU205
	.uleb128 .LVU206
	.uleb128 .LVU206
	.uleb128 0
.LLST34:
	.8byte	.LVL53
	.8byte	.LVL56
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL56
	.8byte	.LVL59
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	.LVL59
	.8byte	.LVL60
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL60
	.8byte	.LFE106
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS35:
	.uleb128 0
	.uleb128 .LVU209
	.uleb128 .LVU209
	.uleb128 0
.LLST35:
	.8byte	.LVL53
	.8byte	.LVL62-1
	.2byte	0x1
	.byte	0x54
	.8byte	.LVL62-1
	.8byte	.LFE106
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS36:
	.uleb128 .LVU187
	.uleb128 .LVU201
	.uleb128 .LVU201
	.uleb128 .LVU203
	.uleb128 .LVU205
	.uleb128 .LVU206
	.uleb128 .LVU206
	.uleb128 .LVU207
.LLST36:
	.8byte	.LVL54
	.8byte	.LVL56
	.2byte	0xe
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.8byte	.LVL56
	.8byte	.LVL57
	.2byte	0xf
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x22
	.byte	0x9f
	.8byte	.LVL59
	.8byte	.LVL60
	.2byte	0xe
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.8byte	.LVL60
	.8byte	.LVL61
	.2byte	0xf
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x22
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS37:
	.uleb128 .LVU190
	.uleb128 .LVU204
	.uleb128 .LVU204
	.uleb128 .LVU205
	.uleb128 .LVU205
	.uleb128 .LVU209
	.uleb128 .LVU209
	.uleb128 0
.LLST37:
	.8byte	.LVL54
	.8byte	.LVL58
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x90
	.byte	0x1c
	.byte	0x9f
	.8byte	.LVL58
	.8byte	.LVL59
	.2byte	0x4
	.byte	0x71
	.sleb128 -144
	.byte	0x9f
	.8byte	.LVL59
	.8byte	.LVL62-1
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x90
	.byte	0x1c
	.byte	0x9f
	.8byte	.LVL62-1
	.8byte	.LFE106
	.2byte	0x4
	.byte	0x91
	.sleb128 -144
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS38:
	.uleb128 .LVU193
	.uleb128 .LVU201
.LLST38:
	.8byte	.LVL55
	.8byte	.LVL56
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS39:
	.uleb128 .LVU186
	.uleb128 .LVU203
	.uleb128 .LVU205
	.uleb128 .LVU207
.LLST39:
	.8byte	.LVL54
	.8byte	.LVL57
	.2byte	0x1
	.byte	0x5a
	.8byte	.LVL59
	.8byte	.LVL61
	.2byte	0x1
	.byte	0x5a
	.8byte	0
	.8byte	0
.LVUS40:
	.uleb128 .LVU191
	.uleb128 .LVU193
	.uleb128 .LVU205
	.uleb128 .LVU206
.LLST40:
	.8byte	.LVL54
	.8byte	.LVL55
	.2byte	0x1
	.byte	0x5a
	.8byte	.LVL59
	.8byte	.LVL60
	.2byte	0x1
	.byte	0x5a
	.8byte	0
	.8byte	0
.LVUS41:
	.uleb128 .LVU191
	.uleb128 .LVU193
	.uleb128 .LVU205
	.uleb128 .LVU206
.LLST41:
	.8byte	.LVL54
	.8byte	.LVL55
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x90
	.byte	0x1c
	.byte	0x9f
	.8byte	.LVL59
	.8byte	.LVL60
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x90
	.byte	0x1c
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS42:
	.uleb128 .LVU191
	.uleb128 .LVU193
	.uleb128 .LVU205
	.uleb128 .LVU206
.LLST42:
	.8byte	.LVL54
	.8byte	.LVL55
	.2byte	0x2
	.byte	0x38
	.byte	0x9f
	.8byte	.LVL59
	.8byte	.LVL60
	.2byte	0x2
	.byte	0x38
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS43:
	.uleb128 .LVU191
	.uleb128 .LVU193
	.uleb128 .LVU205
	.uleb128 .LVU206
.LLST43:
	.8byte	.LVL54
	.8byte	.LVL55
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	.LVL59
	.8byte	.LVL60
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS44:
	.uleb128 .LVU191
	.uleb128 .LVU193
	.uleb128 .LVU205
	.uleb128 .LVU206
.LLST44:
	.8byte	.LVL54
	.8byte	.LVL55
	.2byte	0xe
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.8byte	.LVL59
	.8byte	.LVL60
	.2byte	0xe
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS26:
	.uleb128 .LVU154
	.uleb128 0
.LLST26:
	.8byte	.LVL49
	.8byte	.LFE105
	.2byte	0x1
	.byte	0x5a
	.8byte	0
	.8byte	0
.LVUS27:
	.uleb128 .LVU158
	.uleb128 0
.LLST27:
	.8byte	.LVL50
	.8byte	.LFE105
	.2byte	0xe
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS28:
	.uleb128 .LVU157
	.uleb128 0
.LLST28:
	.8byte	.LVL50
	.8byte	.LFE105
	.2byte	0x1
	.byte	0x54
	.8byte	0
	.8byte	0
.LVUS29:
	.uleb128 .LVU156
	.uleb128 0
.LLST29:
	.8byte	.LVL50
	.8byte	.LFE105
	.2byte	0x1
	.byte	0x57
	.8byte	0
	.8byte	0
.LVUS30:
	.uleb128 .LVU161
	.uleb128 .LVU163
.LLST30:
	.8byte	.LVL51
	.8byte	.LVL52
	.2byte	0x1
	.byte	0x5a
	.8byte	0
	.8byte	0
.LVUS31:
	.uleb128 .LVU161
	.uleb128 .LVU163
.LLST31:
	.8byte	.LVL51
	.8byte	.LVL52
	.2byte	0x1
	.byte	0x54
	.8byte	0
	.8byte	0
.LVUS32:
	.uleb128 .LVU161
	.uleb128 .LVU163
.LLST32:
	.8byte	.LVL51
	.8byte	.LVL52
	.2byte	0x1
	.byte	0x57
	.8byte	0
	.8byte	0
.LVUS33:
	.uleb128 .LVU161
	.uleb128 .LVU163
.LLST33:
	.8byte	.LVL51
	.8byte	.LVL52
	.2byte	0xe
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS2:
	.uleb128 0
	.uleb128 .LVU22
	.uleb128 .LVU22
	.uleb128 0
.LLST2:
	.8byte	.LVL2
	.8byte	.LVL5
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL5
	.8byte	.LFE101
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS3:
	.uleb128 .LVU14
	.uleb128 0
.LLST3:
	.8byte	.LVL3
	.8byte	.LFE101
	.2byte	0x1
	.byte	0x5a
	.8byte	0
	.8byte	0
.LVUS4:
	.uleb128 .LVU15
	.uleb128 .LVU17
.LLST4:
	.8byte	.LVL3
	.8byte	.LVL4
	.2byte	0x1
	.byte	0x5a
	.8byte	0
	.8byte	0
.LVUS5:
	.uleb128 .LVU15
	.uleb128 .LVU17
.LLST5:
	.8byte	.LVL3
	.8byte	.LVL4
	.2byte	0x2
	.byte	0x31
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS6:
	.uleb128 .LVU15
	.uleb128 .LVU17
.LLST6:
	.8byte	.LVL3
	.8byte	.LVL4
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS7:
	.uleb128 .LVU15
	.uleb128 .LVU17
.LLST7:
	.8byte	.LVL3
	.8byte	.LVL4
	.2byte	0xe
	.byte	0x7a
	.sleb128 0
	.byte	0x8
	.byte	0x20
	.byte	0x24
	.byte	0x8
	.byte	0x20
	.byte	0x26
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS0:
	.uleb128 .LVU1
	.uleb128 0
.LLST0:
	.8byte	.LVL0
	.8byte	.LFE111
	.2byte	0x6
	.byte	0xfa
	.4byte	0xfa1
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS1:
	.uleb128 .LVU1
	.uleb128 0
.LLST1:
	.8byte	.LVL0
	.8byte	.LFE111
	.2byte	0x6
	.byte	0xfa
	.4byte	0xf95
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS8:
	.uleb128 0
	.uleb128 .LVU30
	.uleb128 .LVU30
	.uleb128 .LVU60
	.uleb128 .LVU60
	.uleb128 .LVU61
	.uleb128 .LVU61
	.uleb128 .LVU64
	.uleb128 .LVU64
	.uleb128 .LVU73
	.uleb128 .LVU73
	.uleb128 .LVU74
	.uleb128 .LVU74
	.uleb128 0
.LLST8:
	.8byte	.LVL6
	.8byte	.LVL8-1
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL8-1
	.8byte	.LVL18
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL18
	.8byte	.LVL19
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	.LVL19
	.8byte	.LVL21
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL21
	.8byte	.LVL25
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	.LVL25
	.8byte	.LVL26
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL26
	.8byte	.LFE103
	.2byte	0x5
	.byte	0x8d
	.sleb128 -262144
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS9:
	.uleb128 .LVU27
	.uleb128 .LVU30
	.uleb128 .LVU30
	.uleb128 .LVU60
	.uleb128 .LVU60
	.uleb128 .LVU61
	.uleb128 .LVU61
	.uleb128 .LVU64
	.uleb128 .LVU64
	.uleb128 .LVU73
	.uleb128 .LVU73
	.uleb128 .LVU74
	.uleb128 .LVU74
	.uleb128 0
.LLST9:
	.8byte	.LVL7
	.8byte	.LVL8-1
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL8-1
	.8byte	.LVL18
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL18
	.8byte	.LVL19
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	.LVL19
	.8byte	.LVL21
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL21
	.8byte	.LVL25
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	.LVL25
	.8byte	.LVL26
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL26
	.8byte	.LFE103
	.2byte	0x5
	.byte	0x8d
	.sleb128 -262144
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS10:
	.uleb128 .LVU31
	.uleb128 .LVU35
	.uleb128 .LVU35
	.uleb128 .LVU53
	.uleb128 .LVU53
	.uleb128 .LVU55
	.uleb128 .LVU61
	.uleb128 .LVU62
.LLST10:
	.8byte	.LVL9
	.8byte	.LVL10
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	.LVL10
	.8byte	.LVL15
	.2byte	0x1
	.byte	0x6e
	.8byte	.LVL15
	.8byte	.LVL16
	.2byte	0x1
	.byte	0x5a
	.8byte	.LVL19
	.8byte	.LVL20
	.2byte	0x1
	.byte	0x6e
	.8byte	0
	.8byte	0
.LVUS11:
	.uleb128 .LVU37
	.uleb128 .LVU38
.LLST11:
	.8byte	.LVL11
	.8byte	.LVL12
	.2byte	0x1
	.byte	0x53
	.8byte	0
	.8byte	0
.LVUS12:
	.uleb128 .LVU41
	.uleb128 .LVU50
	.uleb128 .LVU61
	.uleb128 .LVU62
.LLST12:
	.8byte	.LVL13
	.8byte	.LVL14
	.2byte	0x1
	.byte	0x6f
	.8byte	.LVL19
	.8byte	.LVL20
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS13:
	.uleb128 .LVU76
	.uleb128 .LVU81
.LLST13:
	.8byte	.LVL28
	.8byte	.LVL29
	.2byte	0xa
	.byte	0x3
	.8byte	.LC4
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS14:
	.uleb128 .LVU76
	.uleb128 .LVU81
.LLST14:
	.8byte	.LVL28
	.8byte	.LVL29
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS15:
	.uleb128 .LVU66
	.uleb128 .LVU71
.LLST15:
	.8byte	.LVL23
	.8byte	.LVL24
	.2byte	0xa
	.byte	0x3
	.8byte	.LC3
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS16:
	.uleb128 .LVU66
	.uleb128 .LVU71
.LLST16:
	.8byte	.LVL23
	.8byte	.LVL24
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS17:
	.uleb128 0
	.uleb128 .LVU91
	.uleb128 .LVU91
	.uleb128 0
.LLST17:
	.8byte	.LVL31
	.8byte	.LVL33-1
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL33-1
	.8byte	.LFE102
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS18:
	.uleb128 0
	.uleb128 .LVU85
	.uleb128 .LVU85
	.uleb128 0
.LLST18:
	.8byte	.LVL31
	.8byte	.LVL32
	.2byte	0x1
	.byte	0x54
	.8byte	.LVL32
	.8byte	.LFE102
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS20:
	.uleb128 .LVU117
	.uleb128 .LVU118
.LLST20:
	.8byte	.LVL37
	.8byte	.LVL37
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS21:
	.uleb128 .LVU127
	.uleb128 .LVU136
	.uleb128 .LVU138
	.uleb128 .LVU140
.LLST21:
	.8byte	.LVL41
	.8byte	.LVL43
	.2byte	0x1
	.byte	0x59
	.8byte	.LVL45
	.8byte	.LVL46-1
	.2byte	0x1
	.byte	0x59
	.8byte	0
	.8byte	0
.LVUS22:
	.uleb128 .LVU109
	.uleb128 .LVU122
	.uleb128 .LVU122
	.uleb128 .LVU137
	.uleb128 .LVU138
	.uleb128 0
.LLST22:
	.8byte	.LVL36
	.8byte	.LVL39
	.2byte	0x2
	.byte	0x8c
	.sleb128 0
	.8byte	.LVL39
	.8byte	.LVL44
	.2byte	0x3
	.byte	0x8c
	.sleb128 -1592
	.8byte	.LVL45
	.8byte	.LFE104
	.2byte	0x3
	.byte	0x8c
	.sleb128 -1592
	.8byte	0
	.8byte	0
.LVUS23:
	.uleb128 .LVU111
	.uleb128 .LVU113
.LLST23:
	.8byte	.LVL36
	.8byte	.LVL36
	.2byte	0x6
	.byte	0xc
	.4byte	0x40080
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS24:
	.uleb128 .LVU111
	.uleb128 .LVU113
.LLST24:
	.8byte	.LVL36
	.8byte	.LVL36
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS25:
	.uleb128 .LVU111
	.uleb128 .LVU113
.LLST25:
	.8byte	.LVL36
	.8byte	.LVL36
	.2byte	0x1
	.byte	0x6e
	.8byte	0
	.8byte	0
.LVUS45:
	.uleb128 0
	.uleb128 .LVU217
	.uleb128 .LVU217
	.uleb128 .LVU235
	.uleb128 .LVU235
	.uleb128 .LVU238
	.uleb128 .LVU238
	.uleb128 0
.LLST45:
	.8byte	.LVL63
	.8byte	.LVL65-1
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL65-1
	.8byte	.LVL73
	.2byte	0x1
	.byte	0x6d
	.8byte	.LVL73
	.8byte	.LVL76
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	.LVL76
	.8byte	.LFE108
	.2byte	0x1
	.byte	0x6d
	.8byte	0
	.8byte	0
.LVUS46:
	.uleb128 .LVU219
	.uleb128 .LVU227
	.uleb128 .LVU227
	.uleb128 .LVU229
	.uleb128 .LVU229
	.uleb128 .LVU232
	.uleb128 .LVU232
	.uleb128 .LVU237
	.uleb128 .LVU248
	.uleb128 .LVU250
.LLST46:
	.8byte	.LVL66
	.8byte	.LVL70
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.8byte	.LVL70
	.8byte	.LVL71
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a1
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.8byte	.LVL71
	.8byte	.LVL72-1
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x79
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.8byte	.LVL72-1
	.8byte	.LVL75
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.8byte	.LVL80
	.8byte	.LVL81
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS47:
	.uleb128 .LVU215
	.uleb128 .LVU217
	.uleb128 .LVU217
	.uleb128 .LVU235
	.uleb128 .LVU235
	.uleb128 .LVU238
	.uleb128 .LVU238
	.uleb128 0
.LLST47:
	.8byte	.LVL64
	.8byte	.LVL65-1
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL65-1
	.8byte	.LVL73
	.2byte	0x1
	.byte	0x6d
	.8byte	.LVL73
	.8byte	.LVL76
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.8byte	.LVL76
	.8byte	.LFE108
	.2byte	0x1
	.byte	0x6d
	.8byte	0
	.8byte	0
.LVUS48:
	.uleb128 .LVU222
	.uleb128 .LVU223
	.uleb128 .LVU223
	.uleb128 .LVU236
	.uleb128 .LVU248
	.uleb128 0
.LLST48:
	.8byte	.LVL68
	.8byte	.LVL69-1
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL69-1
	.8byte	.LVL74
	.2byte	0x1
	.byte	0x6e
	.8byte	.LVL80
	.8byte	.LFE108
	.2byte	0x1
	.byte	0x6e
	.8byte	0
	.8byte	0
.LVUS49:
	.uleb128 .LVU241
	.uleb128 .LVU246
.LLST49:
	.8byte	.LVL78
	.8byte	.LVL79
	.2byte	0xa
	.byte	0x3
	.8byte	.LC3
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS50:
	.uleb128 .LVU241
	.uleb128 .LVU246
.LLST50:
	.8byte	.LVL78
	.8byte	.LVL79
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS51:
	.uleb128 .LVU252
	.uleb128 .LVU257
.LLST51:
	.8byte	.LVL83
	.8byte	.LVL84
	.2byte	0xa
	.byte	0x3
	.8byte	.LC4
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS52:
	.uleb128 .LVU252
	.uleb128 .LVU257
.LLST52:
	.8byte	.LVL83
	.8byte	.LVL84
	.2byte	0x1
	.byte	0x6f
	.8byte	0
	.8byte	0
.LVUS53:
	.uleb128 0
	.uleb128 .LVU264
	.uleb128 .LVU264
	.uleb128 0
.LLST53:
	.8byte	.LVL86
	.8byte	.LVL88
	.2byte	0x1
	.byte	0x53
	.8byte	.LVL88
	.8byte	.LFE107
	.2byte	0x1
	.byte	0x59
	.8byte	0
	.8byte	0
.LVUS54:
	.uleb128 0
	.uleb128 .LVU262
	.uleb128 .LVU262
	.uleb128 0
.LLST54:
	.8byte	.LVL86
	.8byte	.LVL87
	.2byte	0x1
	.byte	0x54
	.8byte	.LVL87
	.8byte	.LFE107
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.8byte	0
	.8byte	0
.LVUS55:
	.uleb128 .LVU264
	.uleb128 0
.LLST55:
	.8byte	.LVL88
	.8byte	.LFE107
	.2byte	0x1
	.byte	0x53
	.8byte	0
	.8byte	0
	.section	.debug_aranges,"",@progbits
	.4byte	0x3c
	.2byte	0x2
	.4byte	.Ldebug_info0
	.byte	0x8
	.byte	0
	.2byte	0
	.2byte	0
	.8byte	.Ltext0
	.8byte	.Letext0-.Ltext0
	.8byte	.LFB110
	.8byte	.LFE110-.LFB110
	.8byte	0
	.8byte	0
	.section	.debug_ranges,"",@progbits
.Ldebug_ranges0:
	.8byte	.LBB78
	.8byte	.LBE78
	.8byte	.LBB87
	.8byte	.LBE87
	.8byte	0
	.8byte	0
	.8byte	.LBB79
	.8byte	.LBE79
	.8byte	.LBB86
	.8byte	.LBE86
	.8byte	0
	.8byte	0
	.8byte	.LBB82
	.8byte	.LBE82
	.8byte	.LBB85
	.8byte	.LBE85
	.8byte	0
	.8byte	0
	.8byte	.LBB98
	.8byte	.LBE98
	.8byte	.LBB114
	.8byte	.LBE114
	.8byte	.LBB119
	.8byte	.LBE119
	.8byte	0
	.8byte	0
	.8byte	.LBB100
	.8byte	.LBE100
	.8byte	.LBB105
	.8byte	.LBE105
	.8byte	.LBB106
	.8byte	.LBE106
	.8byte	.LBB107
	.8byte	.LBE107
	.8byte	0
	.8byte	0
	.8byte	.LBB108
	.8byte	.LBE108
	.8byte	.LBB111
	.8byte	.LBE111
	.8byte	0
	.8byte	0
	.8byte	.LBB115
	.8byte	.LBE115
	.8byte	.LBB118
	.8byte	.LBE118
	.8byte	0
	.8byte	0
	.8byte	.LBB126
	.8byte	.LBE126
	.8byte	.LBB131
	.8byte	.LBE131
	.8byte	.LBB132
	.8byte	.LBE132
	.8byte	.LBB133
	.8byte	.LBE133
	.8byte	0
	.8byte	0
	.8byte	.LBB136
	.8byte	.LBE136
	.8byte	.LBB143
	.8byte	.LBE143
	.8byte	0
	.8byte	0
	.8byte	.LBB137
	.8byte	.LBE137
	.8byte	.LBB140
	.8byte	.LBE140
	.8byte	0
	.8byte	0
	.8byte	.LBB144
	.8byte	.LBE144
	.8byte	.LBB155
	.8byte	.LBE155
	.8byte	.LBB156
	.8byte	.LBE156
	.8byte	.LBB157
	.8byte	.LBE157
	.8byte	0
	.8byte	0
	.8byte	.LBB145
	.8byte	.LBE145
	.8byte	.LBB152
	.8byte	.LBE152
	.8byte	.LBB154
	.8byte	.LBE154
	.8byte	0
	.8byte	0
	.8byte	.LBB149
	.8byte	.LBE149
	.8byte	.LBB153
	.8byte	.LBE153
	.8byte	0
	.8byte	0
	.8byte	.LBB169
	.8byte	.LBE169
	.8byte	.LBB172
	.8byte	.LBE172
	.8byte	0
	.8byte	0
	.8byte	.LBB175
	.8byte	.LBE175
	.8byte	.LBB178
	.8byte	.LBE178
	.8byte	0
	.8byte	0
	.8byte	.LBB179
	.8byte	.LBE179
	.8byte	.LBB182
	.8byte	.LBE182
	.8byte	0
	.8byte	0
	.8byte	.LBB184
	.8byte	.LBE184
	.8byte	.LBB195
	.8byte	.LBE195
	.8byte	0
	.8byte	0
	.8byte	.LBB186
	.8byte	.LBE186
	.8byte	.LBB190
	.8byte	.LBE190
	.8byte	.LBB191
	.8byte	.LBE191
	.8byte	0
	.8byte	0
	.8byte	.LBB192
	.8byte	.LBE192
	.8byte	.LBB193
	.8byte	.LBE193
	.8byte	.LBB194
	.8byte	.LBE194
	.8byte	0
	.8byte	0
	.8byte	.LBB200
	.8byte	.LBE200
	.8byte	.LBB203
	.8byte	.LBE203
	.8byte	0
	.8byte	0
	.8byte	.LBB204
	.8byte	.LBE204
	.8byte	.LBB207
	.8byte	.LBE207
	.8byte	0
	.8byte	0
	.8byte	.Ltext0
	.8byte	.Letext0
	.8byte	.LFB110
	.8byte	.LFE110
	.8byte	0
	.8byte	0
	.section	.debug_line,"",@progbits
.Ldebug_line0:
	.section	.debug_str,"MS",@progbits,1
.LASF136:
	.string	"printf"
.LASF9:
	.string	"__off_t"
.LASF89:
	.string	"count"
.LASF145:
	.string	"malloc"
.LASF42:
	.string	"_chain"
.LASF129:
	.string	"rseq_cmpnev_storeoffp_load"
.LASF12:
	.string	"size_t"
.LASF96:
	.string	"next"
.LASF141:
	.string	"rseq_register_current_thread"
.LASF48:
	.string	"_shortbuf"
.LASF103:
	.string	"allowed_cpus"
.LASF88:
	.string	"test_data_entry"
.LASF112:
	.string	"expectnot"
.LASF133:
	.string	"__ch"
.LASF36:
	.string	"_IO_buf_base"
.LASF110:
	.string	"_cpu"
.LASF150:
	.string	"__builtin_memset"
.LASF22:
	.string	"long long unsigned int"
.LASF95:
	.string	"data"
.LASF117:
	.string	"newval"
.LASF115:
	.string	"test_percpu_list"
.LASF147:
	.string	"free"
.LASF51:
	.string	"_codecvt"
.LASF17:
	.string	"__timezone"
.LASF24:
	.string	"long long int"
.LASF4:
	.string	"signed char"
.LASF153:
	.string	"pthread_join"
.LASF120:
	.string	"__PRETTY_FUNCTION__"
.LASF28:
	.string	"__bits"
.LASF43:
	.string	"_fileno"
.LASF102:
	.string	"test_threads"
.LASF31:
	.string	"_IO_read_end"
.LASF118:
	.string	"expect"
.LASF72:
	.string	"sys_siglist"
.LASF6:
	.string	"long int"
.LASF84:
	.string	"__rseq_handled"
.LASF29:
	.string	"_flags"
.LASF52:
	.string	"_wide_data"
.LASF149:
	.string	"__builtin_puts"
.LASF46:
	.string	"_cur_column"
.LASF77:
	.string	"program_invocation_short_name"
.LASF60:
	.string	"_IO_codecvt"
.LASF75:
	.string	"double"
.LASF76:
	.string	"program_invocation_name"
.LASF45:
	.string	"_old_offset"
.LASF50:
	.string	"_offset"
.LASF7:
	.string	"__uint32_t"
.LASF130:
	.string	"rseq_cmpeqv_storev"
.LASF20:
	.string	"timezone"
.LASF85:
	.string	"rseq"
.LASF154:
	.string	"sched_yield"
.LASF59:
	.string	"_IO_marker"
.LASF63:
	.string	"stdin"
.LASF2:
	.string	"unsigned int"
.LASF54:
	.string	"_freeres_buf"
.LASF138:
	.string	"fprintf"
.LASF139:
	.string	"__stream"
.LASF3:
	.string	"long unsigned int"
.LASF73:
	.string	"__u32"
.LASF34:
	.string	"_IO_write_ptr"
.LASF62:
	.string	"off_t"
.LASF19:
	.string	"daylight"
.LASF66:
	.string	"sys_nerr"
.LASF151:
	.string	"sched_getaffinity"
.LASF21:
	.string	"getdate_err"
.LASF1:
	.string	"short unsigned int"
.LASF100:
	.string	"expected_sum"
.LASF142:
	.string	"rseq_unregister_current_thread"
.LASF156:
	.string	"basic_percpu_ops_test.c"
.LASF38:
	.string	"_IO_save_base"
.LASF107:
	.string	"__percpu_list_pop"
.LASF124:
	.string	"rseq_this_cpu_lock"
.LASF27:
	.string	"intptr_t"
.LASF49:
	.string	"_lock"
.LASF79:
	.string	"cpu_id_start"
.LASF44:
	.string	"_flags2"
.LASF56:
	.string	"_mode"
.LASF64:
	.string	"stdout"
.LASF111:
	.string	"targetptr"
.LASF113:
	.string	"load"
.LASF148:
	.string	"puts"
.LASF70:
	.string	"long double"
.LASF86:
	.string	"percpu_lock_entry"
.LASF30:
	.string	"_IO_read_ptr"
.LASF26:
	.string	"uint64_t"
.LASF132:
	.string	"__dest"
.LASF10:
	.string	"__off64_t"
.LASF158:
	.string	"_IO_lock_t"
.LASF93:
	.string	"_IO_FILE"
.LASF16:
	.string	"__daylight"
.LASF8:
	.string	"__uint64_t"
.LASF94:
	.string	"percpu_list_node"
.LASF123:
	.string	"rseq_percpu_unlock"
.LASF126:
	.string	"error"
.LASF87:
	.string	"percpu_lock"
.LASF41:
	.string	"_markers"
.LASF146:
	.string	"__assert_fail"
.LASF81:
	.string	"rseq_cs"
.LASF23:
	.string	"pthread_t"
.LASF0:
	.string	"unsigned char"
.LASF105:
	.string	"node"
.LASF37:
	.string	"_IO_buf_end"
.LASF5:
	.string	"short int"
.LASF78:
	.string	"ptr64"
.LASF134:
	.string	"__len"
.LASF68:
	.string	"_sys_nerr"
.LASF106:
	.string	"test_percpu_list_thread"
.LASF18:
	.string	"tzname"
.LASF140:
	.string	"__fprintf_chk"
.LASF13:
	.string	"__cpu_mask"
.LASF90:
	.string	"spinlock_test_data"
.LASF98:
	.string	"head"
.LASF25:
	.string	"uint32_t"
.LASF121:
	.string	"test_percpu_spinlock_thread"
.LASF74:
	.string	"__u64"
.LASF91:
	.string	"lock"
.LASF11:
	.string	"char"
.LASF104:
	.string	"__cpu"
.LASF83:
	.string	"__rseq_abi"
.LASF160:
	.string	"__stack_chk_fail"
.LASF127:
	.string	"abort"
.LASF157:
	.string	"/home/michael/build/librseq/tests"
.LASF69:
	.string	"_sys_errlist"
.LASF143:
	.string	"__errno_location"
.LASF128:
	.string	"cmpfail"
.LASF99:
	.string	"percpu_list"
.LASF114:
	.string	"offset"
.LASF32:
	.string	"_IO_read_base"
.LASF159:
	.string	"rseq_cpu_start"
.LASF40:
	.string	"_IO_save_end"
.LASF71:
	.string	"_sys_siglist"
.LASF137:
	.string	"__fmt"
.LASF55:
	.string	"__pad5"
.LASF97:
	.string	"percpu_list_entry"
.LASF35:
	.string	"_IO_write_end"
.LASF57:
	.string	"_unused2"
.LASF65:
	.string	"stderr"
.LASF135:
	.string	"memset"
.LASF109:
	.string	"this_cpu_list_pop"
.LASF122:
	.string	"test_percpu_spinlock"
.LASF152:
	.string	"pthread_create"
.LASF80:
	.string	"cpu_id"
.LASF125:
	.string	"voffp"
.LASF39:
	.string	"_IO_backup_base"
.LASF116:
	.string	"this_cpu_list_push"
.LASF82:
	.string	"flags"
.LASF67:
	.string	"sys_errlist"
.LASF47:
	.string	"_vtable_offset"
.LASF92:
	.string	"reps"
.LASF14:
	.string	"cpu_set_t"
.LASF53:
	.string	"_freeres_list"
.LASF61:
	.string	"_IO_wide_data"
.LASF58:
	.string	"FILE"
.LASF155:
	.string	"GNU C17 9.3.0 -msecure-plt -mcpu=power8 -g -O2 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection"
.LASF101:
	.string	"list"
.LASF144:
	.string	"strerror"
.LASF15:
	.string	"__tzname"
.LASF108:
	.string	"main"
.LASF33:
	.string	"_IO_write_base"
.LASF119:
	.string	"num_threads"
.LASF131:
	.string	"newv"
	.ident	"GCC: (Ubuntu 9.3.0-10ubuntu2) 9.3.0"
	.section	.note.GNU-stack,"",@progbits

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08  0:59 ` Segher Boessenkool
  2020-07-08 12:27   ` Michael Ellerman
@ 2020-07-08 12:33   ` Mathieu Desnoyers
  2020-07-08 14:00     ` Mathieu Desnoyers
  1 sibling, 1 reply; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-08 12:33 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

[-- Attachment #1: Type: text/plain, Size: 3101 bytes --]

----- On Jul 7, 2020, at 8:59 PM, Segher Boessenkool segher@kernel.crashing.org wrote:

> Hi!
> 
> On Tue, Jul 07, 2020 at 03:17:10PM -0400, Mathieu Desnoyers wrote:
>> I'm trying to build librseq at:
>> 
>> https://git.kernel.org/pub/scm/libs/librseq/librseq.git
>> 
>> on powerpc, and I get these errors when building the rseq basic
>> test mirrored from the kernel selftests code:
>> 
>> /tmp/ccieEWxU.s: Assembler messages:
>> /tmp/ccieEWxU.s:118: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:118: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:121: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:121: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:626: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:626: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:629: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:629: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:735: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:735: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:738: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:738: Error: junk at end of line: `,8'
>> /tmp/ccieEWxU.s:741: Error: syntax error; found `,', expected `('
>> /tmp/ccieEWxU.s:741: Error: junk at end of line: `,8'
>> Makefile:581: recipe for target 'basic_percpu_ops_test.o' failed
> 
> You'll have to show the actual failing machine code, and with enough
> context that we can relate this to the source code.
> 
> -save-temps helps, or use -S instead of -c, etc.

Sure, see attached .S file.

> 
>> I am using this compiler:
>> 
>> gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
>> Target: powerpc-linux-gnu
>> 
>> So far, I got things to build by changing "m" operands to "Q" operands.
>> Based on
>> https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints
>> it seems that "Q" means "A memory operand addressed by just a base register."
> 
> Yup.
> 
>> I suspect that lwz and stw don't expect some kind of immediate offset which
>> can be kept with "m", and "Q" fixes this. Is that the right fix ?
>> 
>> And should we change all operands passed to lwz and stw to a "Q" operand ?
> 
> No, lwz and stw exactly *do* take an immediate offset.
> 
> It sounds like the compiler passed memory addressed by indexed
> addressing, instead.  Which is fine for "m", and also fine for those
> insns... well, you need lwzx and stwx.
> 
> So perhaps you have code like
> 
>  int *p;
>  int x;
>  ...
>  asm ("lwz %0,%1" : "=r"(x) : "m"(*p));

We indeed have explicit "lwz" and "stw" instructions in there.

> 
> where that last line should actually read
> 
>  asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));

Indeed, turning those into "lwzx" and "stwx" seems to fix the issue.

There has been some level of extra CPP macro coating around those instructions to
support both ppc32 and ppc64 with the same assembly. So adding %X[arg] is not trivial.
Let me see what can be done here.

Thanks,

Mathieu


> 
> ?
> 
> 
> Segher

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

[-- Attachment #2: basic_percpu_ops_test.S --]
[-- Type: application/octet-stream, Size: 91492 bytes --]

	.file	"basic_percpu_ops_test.c"
	.machine ppc
	.section	".text"
.Ltext0:
	.cfi_sections	.debug_frame
	.align 2
	.p2align 4,,15
	.type	rseq_percpu_unlock.part.0, @function
rseq_percpu_unlock.part.0:
.LFB125:
	.file 1 "basic_percpu_ops_test.c"
	.loc 1 72 0
	.cfi_startproc
.LVL0:
	stwu 1,-16(1)
	.cfi_def_cfa_offset 16
	.loc 1 74 0
	lis 6,.LANCHOR0@ha
	.loc 1 72 0
	mflr 0
	.loc 1 74 0
	lis 4,.LC0@ha
	lis 3,.LC1@ha
	la 6,.LANCHOR0@l(6)
	li 5,74
	la 4,.LC0@l(4)
	la 3,.LC1@l(3)
	.loc 1 72 0
	stw 0,20(1)
	.cfi_offset 65, 4
	.loc 1 74 0
	bl __assert_fail
.LVL1:
	.cfi_endproc
.LFE125:
	.size	rseq_percpu_unlock.part.0,.-rseq_percpu_unlock.part.0
	.align 2
	.p2align 4,,15
	.globl rseq_this_cpu_lock
	.type	rseq_this_cpu_lock, @function
rseq_this_cpu_lock:
.LFB115:
	.loc 1 51 0
	.cfi_startproc
.LVL2:
	stwu 1,-80(1)
	.cfi_def_cfa_offset 80
.LBB72:
.LBB73:
.LBB74:
	.file 2 "../include/rseq/rseq.h"
	.loc 2 142 0
	lis 9,_GLOBAL_OFFSET_TABLE_@ha
	la 9,_GLOBAL_OFFSET_TABLE_@l(9)
	lwz 9,__rseq_abi@got@tprel(9)
.LBE74:
.LBE73:
.LBB77:
.LBB78:
	.file 3 "../include/rseq/rseq-ppc.h"
	.loc 3 211 0
	li 6,0
.LBE78:
.LBE77:
.LBB81:
.LBB75:
	.loc 2 142 0
	add 9,9,__rseq_abi@tls
.LBE75:
.LBE81:
.LBB82:
.LBB79:
	.loc 3 211 0
	li 7,1
.LBE79:
.LBE82:
.LBE72:
	.loc 1 51 0
	stw 17,20(1)
	.cfi_offset 17, -60
.L4:
.L7:
.L5:
.LBB85:
.LBB83:
.LBB76:
	.loc 2 142 0
	lwz 10,0(9)
.LVL3:
.LBE76:
.LBE83:
	.loc 1 58 0
	slwi 8,10,7
.LBB84:
.LBB80:
	.loc 3 211 0
#APP
 # 211 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.long 0x0, 1f, 0x0, (2f - 1f), 0x0, 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.long 0x0, 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.long 0x0, 1f, 0x0, .L7
	.popsection
	lis %r17, (3b)@ha
	addi %r17, %r17, (3b)@l
	stw %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	lwz %r17, 3,8
	cmpw cr7, %r17, 6
	bne- cr7, .L7
	stw 7, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L7
	.popsection
	
 # 0 "" 2
.LVL4:
#NO_APP
.LBE80:
.LBE84:
.LBE85:
	.loc 1 68 0
#APP
 # 68 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
	.loc 1 70 0
#NO_APP
	lwz 17,20(1)
	mr 3,10
.LVL5:
	addi 1,1,80
	.cfi_restore 17
	.cfi_def_cfa_offset 0
	blr
	.cfi_endproc
.LFE115:
	.size	rseq_this_cpu_lock,.-rseq_this_cpu_lock
	.align 2
	.p2align 4,,15
	.globl test_percpu_spinlock_thread
	.type	test_percpu_spinlock_thread, @function
test_percpu_spinlock_thread:
.LFB117:
	.loc 1 83 0
	.cfi_startproc
.LVL6:
	stwu 1,-32(1)
	.cfi_def_cfa_offset 32
	mflr 0
	stw 31,28(1)
	stw 0,36(1)
	stw 28,16(1)
	stw 29,20(1)
	stw 30,24(1)
	.cfi_offset 65, 4
	.cfi_offset 31, -4
	.cfi_offset 28, -16
	.cfi_offset 29, -12
	.cfi_offset 30, -8
	.loc 1 83 0
	mr 31,3
.LVL7:
	.loc 1 87 0
	bl rseq_register_current_thread
.LVL8:
	cmpwi 7,3,0
	bne- 7,.L11
.LVL9:
	.loc 1 92 0 discriminator 1
	addis 29,31,0x4
	li 30,0
	lwz 9,0(29)
.LBB86:
.LBB87:
	.loc 1 79 0 discriminator 1
	li 28,0
.LBE87:
.LBE86:
	.loc 1 92 0 discriminator 1
	cmpwi 7,9,0
	ble 7,.L17
.LVL10:
	.p2align 4,,15
.L18:
	.loc 1 93 0 discriminator 3
	mr 3,31
	bl rseq_this_cpu_lock
.LVL11:
	slwi 3,3,7
.LVL12:
	add 9,31,3
	.loc 1 94 0 discriminator 3
	addis 9,9,0x2
	lwz 10,0(9)
	addi 10,10,1
	stw 10,0(9)
.LVL13:
.LBB90:
.LBB88:
	.loc 1 74 0 discriminator 3
	lwzx 9,31,3
	cmpwi 7,9,1
	bne- 7,.L23
	.loc 1 79 0
#APP
 # 79 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
#NO_APP
	stwx 28,31,3
.LVL14:
.LBE88:
.LBE90:
	.loc 1 92 0
	addi 30,30,1
.LVL15:
	lwz 9,0(29)
	cmpw 7,9,30
	bgt 7,.L18
.LVL16:
.L17:
	.loc 1 97 0
	bl rseq_unregister_current_thread
.LVL17:
	cmpwi 7,3,0
	bne- 7,.L24
	.loc 1 104 0
	lwz 0,36(1)
	lwz 28,16(1)
	lwz 29,20(1)
	lwz 30,24(1)
	mtlr 0
	.cfi_remember_state
	.cfi_restore 65
	lwz 31,28(1)
.LVL18:
	addi 1,1,32
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_def_cfa_offset 0
	blr
.LVL19:
.L23:
	.cfi_restore_state
.LBB91:
.LBB89:
	bl rseq_percpu_unlock.part.0
.LVL20:
.L11:
.LBE89:
.LBE91:
	.loc 1 88 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 89 0
	bl __errno_location
.LVL21:
	.loc 1 88 0
	lwz 31,0(3)
.LVL22:
	mr 3,31
	bl strerror
.LVL23:
.LBB92:
.LBB93:
	.file 4 "/usr/include/powerpc-linux-gnu/bits/stdio2.h"
	.loc 4 97 0
	lis 5,.LC2@ha
	mr 6,31
	la 5,.LC2@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL24:
.LBE93:
.LBE92:
	.loc 1 90 0
	bl abort
.LVL25:
.L24:
	.loc 1 98 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 99 0
	bl __errno_location
.LVL26:
	.loc 1 98 0
	lwz 31,0(3)
.LVL27:
	mr 3,31
	bl strerror
.LVL28:
.LBB94:
.LBB95:
	.loc 4 97 0
	lis 5,.LC3@ha
	mr 6,31
	la 5,.LC3@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL29:
.LBE95:
.LBE94:
	.loc 1 100 0
	bl abort
.LVL30:
	.cfi_endproc
.LFE117:
	.size	test_percpu_spinlock_thread,.-test_percpu_spinlock_thread
	.align 2
	.p2align 4,,15
	.globl rseq_percpu_unlock
	.type	rseq_percpu_unlock, @function
rseq_percpu_unlock:
.LFB116:
	.loc 1 73 0
	.cfi_startproc
.LVL31:
	slwi 4,4,7
.LVL32:
	.loc 1 74 0
	lwzx 9,3,4
	cmpwi 7,9,1
	bne- 7,.L28
	.loc 1 79 0
#APP
 # 79 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
#NO_APP
	li 9,0
	stwx 9,3,4
	blr
.L28:
	.loc 1 73 0 discriminator 1
	stwu 1,-16(1)
	.cfi_def_cfa_offset 16
	mflr 0
	stw 0,20(1)
	.cfi_offset 65, 4
	bl rseq_percpu_unlock.part.0
.LVL33:
	.cfi_endproc
.LFE116:
	.size	rseq_percpu_unlock,.-rseq_percpu_unlock
	.align 2
	.p2align 4,,15
	.globl test_percpu_spinlock
	.type	test_percpu_spinlock, @function
test_percpu_spinlock:
.LFB118:
	.loc 1 113 0
	.cfi_startproc
	.loc 1 113 0
	stwu 1,-64(1)
	.cfi_def_cfa_offset 64
	lis 9,0xfffb
	mflr 0
	ori 9,9,0xff00
.LBB102:
.LBB103:
	.file 5 "/usr/include/powerpc-linux-gnu/bits/string3.h"
	.loc 5 90 0
	lis 5,0x4
	ori 5,5,0x80
	li 4,0
.LBE103:
.LBE102:
	.loc 1 113 0
	lwz 10,0(1)
	stw 25,36(1)
	stw 26,40(1)
	stw 27,44(1)
	stw 28,48(1)
	stw 29,52(1)
	stw 30,56(1)
	stw 31,60(1)
	stw 0,68(1)
	.cfi_offset 65, 4
	.cfi_offset 25, -28
	.cfi_offset 26, -24
	.cfi_offset 27, -20
	.cfi_offset 28, -16
	.cfi_offset 29, -12
	.cfi_offset 30, -8
	.cfi_offset 31, -4
	mr 31,1
	.cfi_def_cfa_register 31
	.loc 1 113 0
	stwux 10,1,9
	lis 26,test_percpu_spinlock_thread@ha
	la 26,test_percpu_spinlock_thread@l(26)
	addi 9,1,135
	lwz 8,-28680(2)
	stw 8,28(31)
	li 8,0
.LVL34:
	.loc 1 117 0
	stwu 10,-816(1)
	.loc 1 113 0
	rlwinm 30,9,0,0,24
.LBB106:
.LBB104:
	.loc 5 90 0
	mr 3,30
.LBE104:
.LBE106:
	.loc 1 121 0
	addis 27,30,0x4
.LBB107:
.LBB105:
	.loc 5 90 0
	bl memset
.LVL35:
.LBE105:
.LBE107:
	.loc 1 121 0
	li 9,5000
	.loc 1 117 0
	addi 28,1,8
.LVL36:
	.loc 1 121 0
	stw 9,0(27)
	mr 29,28
	addi 25,28,800
.LVL37:
	.p2align 5,,31
.L30:
	.loc 1 124 0 discriminator 3
	mr 3,29
	mr 6,30
	mr 5,26
	li 4,0
	addi 29,29,4
	bl pthread_create
.LVL38:
	.loc 1 123 0 discriminator 3
	cmplw 7,29,25
	bne 7,.L30
	addi 29,28,-4
	addi 28,28,796
.LVL39:
	.p2align 5,,31
.L31:
	.loc 1 128 0 discriminator 3
	lwzu 3,4(29)
	li 4,0
	bl pthread_join
.LVL40:
	.loc 1 127 0 discriminator 3
	cmplw 7,28,29
	bne 7,.L31
	addis 9,30,0x2
	.loc 1 127 0 is_stmt 0
	li 7,0
	li 10,0
	.p2align 5,,31
.L32:
.LVL41:
	.loc 1 132 0 is_stmt 1 discriminator 3
	lwz 8,0(9)
	addi 9,9,128
	.loc 1 131 0 discriminator 3
	cmplw 7,27,9
	.loc 1 132 0 discriminator 3
	srawi 6,8,31
	addc 10,8,10
.LVL42:
	adde 7,6,7
.LVL43:
	.loc 1 131 0 discriminator 3
	bne 7,.L32
	.loc 1 134 0
	lwz 9,0(27)
	li 8,200
	mulhw 8,9,8
	mulli 9,9,200
	cmplw 7,7,8
	bne- 7,.L36
	cmplw 7,10,9
	bne- 7,.L36
	.loc 1 135 0
	lwz 9,28(31)
	lwz 10,-28680(2)
	xor. 9,9,10
	li 10,0
.LVL44:
	bne- 0,.L42
	addi 11,31,64
	lwz 0,4(11)
	lwz 25,-28(11)
	lwz 31,-4(11)
	.cfi_remember_state
	.cfi_def_cfa 11, 0
	lwz 26,-24(11)
	mtlr 0
	.cfi_restore 65
	lwz 27,-20(11)
	lwz 28,-16(11)
.LVL45:
	lwz 29,-12(11)
	lwz 30,-8(11)
	mr 1,11
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_restore 27
	.cfi_restore 26
	.cfi_restore 25
	.cfi_def_cfa_register 1
.LVL46:
	blr
.LVL47:
.L36:
	.cfi_restore_state
.LBB108:
.LBB109:
	.loc 1 134 0
	lis 6,.LANCHOR0@ha
	lis 4,.LC0@ha
	la 6,.LANCHOR0@l(6)
	lis 3,.LC4@ha
	addi 6,6,20
	li 5,134
	la 4,.LC0@l(4)
	la 3,.LC4@l(3)
	bl __assert_fail
.LVL48:
.L42:
.LBE109:
.LBE108:
	.loc 1 135 0
	bl __stack_chk_fail
.LVL49:
	.cfi_endproc
.LFE118:
	.size	test_percpu_spinlock,.-test_percpu_spinlock
	.align 2
	.p2align 4,,15
	.globl this_cpu_list_push
	.type	this_cpu_list_push, @function
this_cpu_list_push:
.LFB119:
	.loc 1 140 0
	.cfi_startproc
.LVL50:
	stwu 1,-80(1)
	.cfi_def_cfa_offset 80
.LBB110:
.LBB111:
.LBB112:
	.loc 2 142 0
	lis 9,_GLOBAL_OFFSET_TABLE_@ha
	la 9,_GLOBAL_OFFSET_TABLE_@l(9)
	lwz 9,__rseq_abi@got@tprel(9)
	add 9,9,__rseq_abi@tls
.LBE112:
.LBE111:
.LBE110:
	.loc 1 140 0
	stw 17,20(1)
	.cfi_offset 17, -60
.L44:
.L45:
.LBB117:
.LBB114:
.LBB113:
	.loc 2 142 0
	lwz 10,0(9)
.LVL51:
.LBE113:
.LBE114:
	.loc 1 149 0
	slwi 8,10,7
	lwzx 7,3,8
.LVL52:
	.loc 1 152 0
	stw 7,4(4)
.LVL53:
.LBB115:
.LBB116:
	.loc 3 211 0
#APP
 # 211 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.long 0x0, 1f, 0x0, (2f - 1f), 0x0, 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.long 0x0, 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.long 0x0, 1f, 0x0, .L44
	.popsection
	lis %r17, (3b)@ha
	addi %r17, %r17, (3b)@l
	stw %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	lwz %r17, 3,8
	cmpw cr7, %r17, 7
	bne- cr7, .L44
	stw 4, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L44
	.popsection
	
 # 0 "" 2
.LVL54:
#NO_APP
.LBE116:
.LBE115:
.LBE117:
	.loc 1 158 0
	cmpwi 7,5,0
	beq 7,.L43
	.loc 1 159 0
	stw 10,0(5)
.L43:
	.loc 1 160 0
	lwz 17,20(1)
	addi 1,1,80
	.cfi_restore 17
	.cfi_def_cfa_offset 0
	blr
	.cfi_endproc
.LFE119:
	.size	this_cpu_list_push,.-this_cpu_list_push
	.align 2
	.p2align 4,,15
	.globl this_cpu_list_pop
	.type	this_cpu_list_pop, @function
this_cpu_list_pop:
.LFB120:
	.loc 1 169 0
	.cfi_startproc
.LVL55:
	stwu 1,-96(1)
	.cfi_def_cfa_offset 96
.LBB118:
.LBB119:
.LBB120:
	.loc 3 271 0
	li 6,0
.LBE120:
.LBE119:
.LBE118:
	.loc 1 169 0
	mflr 0
.LBB127:
.LBB123:
.LBB121:
	.loc 3 271 0
	li 7,4
.LBE121:
.LBE123:
.LBE127:
	.loc 1 169 0
	stw 0,100(1)
	stw 17,36(1)
	.cfi_offset 65, 4
	.cfi_offset 17, -60
	.loc 1 169 0
	lwz 9,-28680(2)
	stw 9,28(1)
	li 9,0
.LBB128:
.LBB124:
.LBB125:
	.loc 2 142 0
	lis 9,_GLOBAL_OFFSET_TABLE_@ha
	la 9,_GLOBAL_OFFSET_TABLE_@l(9)
	lwz 9,__rseq_abi@got@tprel(9)
	add 9,9,__rseq_abi@tls
.L57:
	lwz 10,0(9)
.LVL56:
.LBE125:
.LBE124:
	.loc 1 177 0
	slwi 8,10,7
.LBB126:
.LBB122:
	.loc 3 271 0
#APP
 # 271 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.long 0x0, 1f, 0x0, (2f - 1f), 0x0, 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.long 0x0, 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.long 0x0, 1f, 0x0, .L61
	.popsection
	lis %r17, (3b)@ha
	addi %r17, %r17, (3b)@l
	stw %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	lwz %r17, 3,8
	cmpw cr7, %r17, 6
	beq- cr7, .L61
	lwz %r17, 3,8
	stw %r17, 24(1)
	lwzx %r17, 7, %r17
	stw %r17, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L57
	.popsection
	
 # 0 "" 2
.LVL57:
#NO_APP
.LBE122:
.LBE126:
	.loc 1 184 0
	cmpwi 7,4,0
	beq 7,.L59
	.loc 1 185 0
	stw 10,0(4)
.L59:
	.loc 1 186 0
	lwz 3,24(1)
.LVL58:
	b .L55
.L54:
.LVL59:
.L61:
	.loc 1 189 0
	li 3,0
.LVL60:
.L55:
.LBE128:
	.loc 1 192 0 discriminator 1
	lwz 10,28(1)
	lwz 9,-28680(2)
	xor. 10,10,9
	li 9,0
.LVL61:
	bne- 0,.L67
	.loc 1 192 0 is_stmt 0
	lwz 0,100(1)
	lwz 17,36(1)
	addi 1,1,96
	.cfi_remember_state
	.cfi_restore 17
	.cfi_def_cfa_offset 0
.LVL62:
	mtlr 0
	.cfi_restore 65
	blr
.LVL63:
.L67:
	.cfi_restore_state
	bl __stack_chk_fail
.LVL64:
	.cfi_endproc
.LFE120:
	.size	this_cpu_list_pop,.-this_cpu_list_pop
	.align 2
	.p2align 4,,15
	.globl test_percpu_list_thread
	.type	test_percpu_list_thread, @function
test_percpu_list_thread:
.LFB122:
	.loc 1 210 0 is_stmt 1
	.cfi_startproc
.LVL65:
	stwu 1,-32(1)
	.cfi_def_cfa_offset 32
	mflr 0
	stw 29,20(1)
	stw 31,28(1)
	stw 0,36(1)
	stw 30,24(1)
	.cfi_offset 65, 4
	.cfi_offset 29, -12
	.cfi_offset 31, -4
	.cfi_offset 30, -8
	.loc 1 210 0
	mr 29,3
	.loc 1 214 0
	bl rseq_register_current_thread
.LVL66:
	lis 31,0x1
	ori 31,31,0x86a0
	cmpwi 7,3,0
	bne- 7,.L81
	.p2align 4,,15
.L75:
.LVL67:
.LBB139:
	.loc 1 223 0
	li 4,0
	mr 3,29
	bl this_cpu_list_pop
.LVL68:
	mr 30,3
.LVL69:
	.loc 1 224 0
	bl sched_yield
.LVL70:
	.loc 1 225 0
	cmpwi 7,30,0
	beq 7,.L70
	.loc 1 226 0
	li 5,0
	mr 4,30
	mr 3,29
	bl this_cpu_list_push
.LVL71:
.L70:
.LBE139:
	.loc 1 220 0 discriminator 2
	cmpwi 0,31,1
	addi 31,31,-1
.LVL72:
	bne 0,.L75
	.loc 1 229 0
	bl rseq_unregister_current_thread
.LVL73:
	cmpwi 7,3,0
	bne- 7,.L82
	.loc 1 236 0
	lwz 0,36(1)
	lwz 29,20(1)
.LVL74:
	lwz 30,24(1)
.LVL75:
	lwz 31,28(1)
.LVL76:
	addi 1,1,32
	.cfi_remember_state
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa_offset 0
	mtlr 0
	.cfi_restore 65
	blr
.LVL77:
.L81:
	.cfi_restore_state
.LBB140:
.LBB141:
	.loc 1 215 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 216 0
	bl __errno_location
.LVL78:
	.loc 1 215 0
	lwz 31,0(3)
	mr 3,31
	bl strerror
.LVL79:
.LBB142:
.LBB143:
	.loc 4 97 0
	lis 5,.LC2@ha
	mr 6,31
	la 5,.LC2@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL80:
.LBE143:
.LBE142:
	.loc 1 217 0
	bl abort
.LVL81:
.L82:
.LBE141:
.LBE140:
	.loc 1 230 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
.LVL82:
	.loc 1 231 0
	bl __errno_location
.LVL83:
	.loc 1 230 0
	lwz 31,0(3)
.LVL84:
	mr 3,31
	bl strerror
.LVL85:
.LBB144:
.LBB145:
	.loc 4 97 0
	lis 5,.LC3@ha
	mr 6,31
	la 5,.LC3@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL86:
.LBE145:
.LBE144:
	.loc 1 232 0
	bl abort
.LVL87:
	.cfi_endproc
.LFE122:
	.size	test_percpu_list_thread,.-test_percpu_list_thread
	.align 2
	.p2align 4,,15
	.globl __percpu_list_pop
	.type	__percpu_list_pop, @function
__percpu_list_pop:
.LFB121:
	.loc 1 199 0
	.cfi_startproc
.LVL88:
	stwu 1,-16(1)
	.cfi_def_cfa_offset 16
	slwi 4,4,7
.LVL89:
	.loc 1 202 0
	lwzx 9,3,4
.LVL90:
	.loc 1 203 0
	cmpwi 7,9,0
	beq 7,.L84
	.loc 1 205 0
	lwz 10,4(9)
	stwx 10,3,4
.L84:
	.loc 1 207 0
	mr 3,9
.LVL91:
	addi 1,1,16
	.cfi_def_cfa_offset 0
	blr
	.cfi_endproc
.LFE121:
	.size	__percpu_list_pop,.-__percpu_list_pop
	.align 2
	.p2align 4,,15
	.globl test_percpu_list
	.type	test_percpu_list, @function
test_percpu_list:
.LFB123:
	.loc 1 240 0
	.cfi_startproc
	stwu 1,-1008(1)
	.cfi_def_cfa_offset 1008
	lis 9,0xfffd
	mflr 0
	ori 9,9,0xff80
.LBB146:
.LBB147:
	.loc 5 90 0
	lis 5,0x2
	li 4,0
.LBE147:
.LBE146:
	.loc 1 240 0
	lwz 10,0(1)
	stw 0,1012(1)
	stw 23,972(1)
	stw 24,976(1)
	stw 25,980(1)
	stw 26,984(1)
	stw 27,988(1)
	stw 29,996(1)
	stw 31,1004(1)
	stw 28,992(1)
	.cfi_offset 65, 4
	.cfi_offset 23, -36
	.cfi_offset 24, -32
	.cfi_offset 25, -28
	.cfi_offset 26, -24
	.cfi_offset 27, -20
	.cfi_offset 29, -12
	.cfi_offset 31, -4
	.cfi_offset 28, -16
	mr 31,1
	.cfi_def_cfa_register 31
	stw 30,1000(1)
	.cfi_offset 30, -8
	.loc 1 240 0
	stwux 10,1,9
	.loc 1 242 0
	li 26,0
	li 29,0
	.loc 1 251 0
	li 24,0
	.loc 1 240 0
	addi 23,1,135
	lwz 9,-28680(2)
	stw 9,956(31)
	li 9,0
.LVL92:
	rlwinm 23,23,0,0,24
.LVL93:
.LBB149:
.LBB148:
	.loc 5 90 0
	mr 3,23
	bl memset
.LVL94:
.LBE148:
.LBE149:
	.loc 1 250 0
	addi 5,31,28
	li 4,128
	li 3,0
	mr 25,23
	bl sched_getaffinity
.LVL95:
	mr 27,23
.LVL96:
	.p2align 4,,15
.L93:
.LBB150:
	.loc 1 252 0
	addi 10,31,960
	rlwinm 9,24,29,3,29
	add 9,10,9
	rlwinm 10,24,0,27,31
	lwz 9,-932(9)
	srw 9,9,10
	andi. 10,9,1
	beq 0,.L90
	li 28,0
	li 30,1
.LVL97:
	.p2align 4,,15
.L114:
.LBE150:
.LBB151:
	.loc 1 257 0
	addc 29,30,29
.LVL98:
	.loc 1 259 0
	li 3,8
	.loc 1 257 0
	adde 26,28,26
	.loc 1 259 0
	bl malloc
.LVL99:
	.loc 1 260 0
	cmpwi 0,3,0
	beq- 0,.L121
	addic 10,30,1
	.loc 1 262 0 discriminator 2
	lwz 8,0(27)
	.loc 1 261 0 discriminator 2
	stw 30,0(3)
	addze 28,28
	.loc 1 263 0 discriminator 2
	stw 3,0(27)
.LVL100:
.LBE151:
	.loc 1 254 0 discriminator 2
	cmpwi 7,28,0
.LBB152:
	.loc 1 262 0 discriminator 2
	stw 8,4(3)
	mr 30,10
.LVL101:
.LBE152:
	.loc 1 254 0 discriminator 2
	bne 7,.L114
	cmplwi 7,10,101
	bne 7,.L114
.LVL102:
	.p2align 4,,15
.L90:
	.loc 1 251 0 discriminator 2
	cmpwi 7,24,1023
	addi 27,27,128
	addi 24,24,1
.LVL103:
	bne 7,.L93
	lis 28,test_percpu_list_thread@ha
	addi 30,31,156
	addi 27,31,956
	la 28,test_percpu_list_thread@l(28)
.LVL104:
	.p2align 5,,31
.L94:
	.loc 1 268 0 discriminator 3
	mr 3,30
	mr 6,23
	mr 5,28
	li 4,0
	addi 30,30,4
	bl pthread_create
.LVL105:
	.loc 1 267 0 discriminator 3
	cmplw 7,27,30
	bne 7,.L94
	addi 30,31,152
	addi 28,31,952
	.p2align 5,,31
.L95:
	.loc 1 272 0 discriminator 3
	lwzu 3,4(30)
	li 4,0
	bl pthread_join
.LVL106:
	.loc 1 271 0 discriminator 3
	cmplw 7,28,30
	bne 7,.L95
	li 28,0
	li 30,0
	li 27,0
	b .L98
.LVL107:
	.p2align 4,,15
.L96:
	.loc 1 274 0 discriminator 2
	cmpwi 7,27,1023
	addi 25,25,128
	addi 27,27,1
.LVL108:
	beq 7,.L122
.LVL109:
.L98:
.LBB153:
.LBB154:
	.loc 1 277 0
	addi 10,31,960
	rlwinm 9,27,29,3,29
	add 9,10,9
	rlwinm 10,27,0,27,31
	lwz 9,-932(9)
	srw 9,9,10
	andi. 10,9,1
	beq 0,.L96
.LVL110:
.LBE154:
.LBB155:
.LBB156:
	.loc 1 202 0
	lwz 3,0(25)
.LVL111:
	.loc 1 203 0
	cmpwi 7,3,0
	beq 7,.L96
	.p2align 4,,15
.L97:
.LVL112:
	.loc 1 205 0
	lwz 8,4(3)
.LBE156:
.LBE155:
	.loc 1 281 0
	lwz 9,0(3)
.LBB159:
.LBB157:
	.loc 1 205 0
	stw 8,0(25)
.LVL113:
.LBE157:
.LBE159:
	.loc 1 281 0
	srawi 10,9,31
	addc 30,9,30
.LVL114:
	adde 28,10,28
.LVL115:
	.loc 1 282 0
	bl free
.LVL116:
.LBB160:
.LBB158:
	.loc 1 202 0
	lwz 3,0(25)
.LVL117:
	.loc 1 203 0
	cmpwi 7,3,0
	bne 7,.L97
.LVL118:
.LBE158:
.LBE160:
.LBE153:
	.loc 1 274 0
	cmpwi 7,27,1023
	addi 25,25,128
	addi 27,27,1
.LVL119:
	bne 7,.L98
.LVL120:
.L122:
	.loc 1 291 0
	cmplw 7,28,26
	bne- 7,.L102
	cmplw 7,30,29
	bne- 7,.L102
	.loc 1 292 0
	lwz 9,956(31)
	lwz 10,-28680(2)
	xor. 9,9,10
	li 10,0
	bne- 0,.L123
	addi 11,31,1008
	lwz 0,4(11)
	lwz 23,-36(11)
	lwz 31,-4(11)
	.cfi_remember_state
	.cfi_def_cfa 11, 0
	lwz 24,-32(11)
.LVL121:
	mtlr 0
	.cfi_restore 65
	lwz 25,-28(11)
	lwz 26,-24(11)
.LVL122:
	lwz 27,-20(11)
.LVL123:
	lwz 28,-16(11)
	lwz 29,-12(11)
	lwz 30,-8(11)
	mr 1,11
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_restore 27
	.cfi_restore 26
	.cfi_restore 25
	.cfi_restore 24
	.cfi_restore 23
	.cfi_def_cfa_register 1
	blr
.LVL124:
.L121:
	.cfi_restore_state
.LBB161:
	.loc 1 260 0 discriminator 1
	lis 6,.LANCHOR0@ha
	lis 4,.LC0@ha
	la 6,.LANCHOR0@l(6)
	lis 3,.LC5@ha
.LVL125:
	addi 6,6,44
	li 5,260
	la 4,.LC0@l(4)
	la 3,.LC5@l(3)
	bl __assert_fail
.LVL126:
.L102:
.LBE161:
	.loc 1 291 0 discriminator 1
	lis 6,.LANCHOR0@ha
	lis 4,.LC0@ha
	la 6,.LANCHOR0@l(6)
	lis 3,.LC6@ha
	addi 6,6,44
	li 5,291
	la 4,.LC0@l(4)
	la 3,.LC6@l(3)
	bl __assert_fail
.LVL127:
.L123:
	.loc 1 292 0
	bl __stack_chk_fail
.LVL128:
	.cfi_endproc
.LFE123:
	.size	test_percpu_list,.-test_percpu_list
	.section	.text.startup,"ax",@progbits
	.align 2
	.p2align 4,,15
	.globl main
	.type	main, @function
main:
.LFB124:
	.loc 1 295 0
	.cfi_startproc
	stwu 1,-32(1)
	.cfi_def_cfa_offset 32
	mflr 0
	stw 30,24(1)
	stw 0,36(1)
	stw 31,28(1)
	.cfi_offset 65, 4
	.cfi_offset 30, -8
	.cfi_offset 31, -4
	.loc 1 296 0
	bl rseq_register_current_thread
.LVL129:
	cmpwi 7,3,0
	bne 7,.L131
.LVL130:
.LBB162:
.LBB163:
	.loc 4 104 0
	lis 3,.LC7@ha
	la 3,.LC7@l(3)
	bl puts
.LVL131:
.LBE163:
.LBE162:
	.loc 1 302 0
	bl test_percpu_spinlock
.LVL132:
.LBB164:
.LBB165:
	.loc 4 104 0
	lis 3,.LC8@ha
	la 3,.LC8@l(3)
	bl puts
.LVL133:
.LBE165:
.LBE164:
	.loc 1 304 0
	bl test_percpu_list
.LVL134:
	.loc 1 305 0
	bl rseq_unregister_current_thread
.LVL135:
	cmpwi 0,3,0
	bne 0,.L132
.L126:
	.loc 1 314 0
	lwz 0,36(1)
	lwz 30,24(1)
	lwz 31,28(1)
	addi 1,1,32
	.cfi_remember_state
	.cfi_restore 31
	.cfi_restore 30
	.cfi_def_cfa_offset 0
	mtlr 0
	.cfi_restore 65
	blr
.L131:
	.cfi_restore_state
	.loc 1 297 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 298 0
	bl __errno_location
.LVL136:
	.loc 1 297 0
	lwz 31,0(3)
	mr 3,31
	bl strerror
.LVL137:
.LBB166:
.LBB167:
	.loc 4 97 0
	lis 5,.LC2@ha
	mr 6,31
	la 5,.LC2@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL138:
.LBE167:
.LBE166:
	.loc 1 313 0
	li 3,-1
	b .L126
.LVL139:
.L132:
	.loc 1 306 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 307 0
	bl __errno_location
.LVL140:
	.loc 1 306 0
	lwz 31,0(3)
	mr 3,31
	bl strerror
.LVL141:
.LBB168:
.LBB169:
	.loc 4 97 0
	lis 5,.LC3@ha
	mr 6,31
	la 5,.LC3@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL142:
.LBE169:
.LBE168:
	.loc 1 313 0
	li 3,-1
	b .L126
	.cfi_endproc
.LFE124:
	.size	main,.-main
	.section	.rodata
	.align 2
	.set	.LANCHOR0,. + 0
	.type	__PRETTY_FUNCTION__.5645, @object
	.size	__PRETTY_FUNCTION__.5645, 19
__PRETTY_FUNCTION__.5645:
	.string	"rseq_percpu_unlock"
	.zero	1
	.type	__PRETTY_FUNCTION__.5672, @object
	.size	__PRETTY_FUNCTION__.5672, 21
__PRETTY_FUNCTION__.5672:
	.string	"test_percpu_spinlock"
	.zero	3
	.type	__PRETTY_FUNCTION__.5725, @object
	.size	__PRETTY_FUNCTION__.5725, 17
__PRETTY_FUNCTION__.5725:
	.string	"test_percpu_list"
	.section	.rodata.str1.4,"aMS",@progbits,1
	.align 2
.LC0:
	.string	"basic_percpu_ops_test.c"
.LC1:
	.string	"lock->c[cpu].v == 1"
.LC2:
	.string	"Error: rseq_register_current_thread(...) failed(%d): %s\n"
	.zero	3
.LC3:
	.string	"Error: rseq_unregister_current_thread(...) failed(%d): %s\n"
	.zero	1
.LC4:
	.string	"sum == (uint64_t)data.reps * num_threads"
	.zero	3
.LC5:
	.string	"node"
	.zero	3
.LC6:
	.string	"sum == expected_sum"
.LC7:
	.string	"spinlock"
	.zero	3
.LC8:
	.string	"percpu_list"
	.section	".text"
.Letext0:
	.file 6 "/usr/include/powerpc-linux-gnu/bits/types.h"
	.file 7 "/usr/lib/gcc/powerpc-linux-gnu/5/include/stddef.h"
	.file 8 "/usr/include/powerpc-linux-gnu/bits/sched.h"
	.file 9 "/usr/include/powerpc-linux-gnu/bits/pthreadtypes.h"
	.file 10 "/usr/include/stdint.h"
	.file 11 "/usr/include/stdio.h"
	.file 12 "/usr/include/libio.h"
	.file 13 "/usr/include/asm-generic/int-ll64.h"
	.file 14 "/home/compudj/git/librseq/extra/linux/rseq.h"
	.file 15 "/usr/include/assert.h"
	.file 16 "/usr/include/powerpc-linux-gnu/bits/errno.h"
	.file 17 "/usr/include/string.h"
	.file 18 "/usr/include/stdlib.h"
	.file 19 "/usr/include/pthread.h"
	.file 20 "/usr/include/sched.h"
	.file 21 "<built-in>"
	.section	.debug_info,"",@progbits
.Ldebug_info0:
	.4byte	0x142c
	.2byte	0x4
	.4byte	.Ldebug_abbrev0
	.byte	0x4
	.uleb128 0x1
	.4byte	.LASF140
	.byte	0xc
	.4byte	.LASF141
	.4byte	.LASF142
	.4byte	.Ldebug_ranges0+0x160
	.4byte	0
	.4byte	.Ldebug_line0
	.uleb128 0x2
	.byte	0x1
	.byte	0x8
	.4byte	.LASF0
	.uleb128 0x2
	.byte	0x2
	.byte	0x7
	.4byte	.LASF1
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.4byte	.LASF2
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.4byte	.LASF3
	.uleb128 0x2
	.byte	0x1
	.byte	0x6
	.4byte	.LASF4
	.uleb128 0x2
	.byte	0x2
	.byte	0x5
	.4byte	.LASF5
	.uleb128 0x3
	.byte	0x4
	.byte	0x5
	.string	"int"
	.uleb128 0x2
	.byte	0x8
	.byte	0x5
	.4byte	.LASF6
	.uleb128 0x2
	.byte	0x8
	.byte	0x7
	.4byte	.LASF7
	.uleb128 0x4
	.4byte	.LASF8
	.byte	0x6
	.byte	0x37
	.4byte	0x56
	.uleb128 0x4
	.4byte	.LASF9
	.byte	0x6
	.byte	0x83
	.4byte	0x7a
	.uleb128 0x2
	.byte	0x4
	.byte	0x5
	.4byte	.LASF10
	.uleb128 0x4
	.4byte	.LASF11
	.byte	0x6
	.byte	0x84
	.4byte	0x64
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.4byte	.LASF12
	.uleb128 0x5
	.byte	0x4
	.uleb128 0x6
	.byte	0x4
	.4byte	0x9b
	.uleb128 0x2
	.byte	0x1
	.byte	0x8
	.4byte	.LASF13
	.uleb128 0x4
	.4byte	.LASF14
	.byte	0x7
	.byte	0xd8
	.4byte	0x33
	.uleb128 0x4
	.4byte	.LASF15
	.byte	0x8
	.byte	0x76
	.4byte	0x3a
	.uleb128 0x7
	.byte	0x80
	.byte	0x8
	.byte	0x7d
	.4byte	0xcd
	.uleb128 0x8
	.4byte	.LASF22
	.byte	0x8
	.byte	0x7f
	.4byte	0xcd
	.byte	0
	.byte	0
	.uleb128 0x9
	.4byte	0xad
	.4byte	0xdd
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x1f
	.byte	0
	.uleb128 0x4
	.4byte	.LASF16
	.byte	0x8
	.byte	0x80
	.4byte	0xb8
	.uleb128 0x6
	.byte	0x4
	.4byte	0xee
	.uleb128 0xb
	.4byte	0x9b
	.uleb128 0xb
	.4byte	0x4f
	.uleb128 0x4
	.4byte	.LASF17
	.byte	0x9
	.byte	0x31
	.4byte	0x3a
	.uleb128 0x4
	.4byte	.LASF18
	.byte	0xa
	.byte	0x33
	.4byte	0x33
	.uleb128 0x4
	.4byte	.LASF19
	.byte	0xa
	.byte	0x3a
	.4byte	0x5d
	.uleb128 0x4
	.4byte	.LASF20
	.byte	0xa
	.byte	0x7d
	.4byte	0x4f
	.uleb128 0x4
	.4byte	.LASF21
	.byte	0xb
	.byte	0x30
	.4byte	0x12f
	.uleb128 0xc
	.4byte	.LASF52
	.byte	0x98
	.byte	0xc
	.byte	0xf1
	.4byte	0x2ac
	.uleb128 0x8
	.4byte	.LASF23
	.byte	0xc
	.byte	0xf2
	.4byte	0x4f
	.byte	0
	.uleb128 0x8
	.4byte	.LASF24
	.byte	0xc
	.byte	0xf7
	.4byte	0x95
	.byte	0x4
	.uleb128 0x8
	.4byte	.LASF25
	.byte	0xc
	.byte	0xf8
	.4byte	0x95
	.byte	0x8
	.uleb128 0x8
	.4byte	.LASF26
	.byte	0xc
	.byte	0xf9
	.4byte	0x95
	.byte	0xc
	.uleb128 0x8
	.4byte	.LASF27
	.byte	0xc
	.byte	0xfa
	.4byte	0x95
	.byte	0x10
	.uleb128 0x8
	.4byte	.LASF28
	.byte	0xc
	.byte	0xfb
	.4byte	0x95
	.byte	0x14
	.uleb128 0x8
	.4byte	.LASF29
	.byte	0xc
	.byte	0xfc
	.4byte	0x95
	.byte	0x18
	.uleb128 0x8
	.4byte	.LASF30
	.byte	0xc
	.byte	0xfd
	.4byte	0x95
	.byte	0x1c
	.uleb128 0x8
	.4byte	.LASF31
	.byte	0xc
	.byte	0xfe
	.4byte	0x95
	.byte	0x20
	.uleb128 0xd
	.4byte	.LASF32
	.byte	0xc
	.2byte	0x100
	.4byte	0x95
	.byte	0x24
	.uleb128 0xd
	.4byte	.LASF33
	.byte	0xc
	.2byte	0x101
	.4byte	0x95
	.byte	0x28
	.uleb128 0xd
	.4byte	.LASF34
	.byte	0xc
	.2byte	0x102
	.4byte	0x95
	.byte	0x2c
	.uleb128 0xd
	.4byte	.LASF35
	.byte	0xc
	.2byte	0x104
	.4byte	0x2e4
	.byte	0x30
	.uleb128 0xd
	.4byte	.LASF36
	.byte	0xc
	.2byte	0x106
	.4byte	0x2ea
	.byte	0x34
	.uleb128 0xd
	.4byte	.LASF37
	.byte	0xc
	.2byte	0x108
	.4byte	0x4f
	.byte	0x38
	.uleb128 0xd
	.4byte	.LASF38
	.byte	0xc
	.2byte	0x10c
	.4byte	0x4f
	.byte	0x3c
	.uleb128 0xd
	.4byte	.LASF39
	.byte	0xc
	.2byte	0x10e
	.4byte	0x6f
	.byte	0x40
	.uleb128 0xd
	.4byte	.LASF40
	.byte	0xc
	.2byte	0x112
	.4byte	0x2c
	.byte	0x44
	.uleb128 0xd
	.4byte	.LASF41
	.byte	0xc
	.2byte	0x113
	.4byte	0x41
	.byte	0x46
	.uleb128 0xd
	.4byte	.LASF42
	.byte	0xc
	.2byte	0x114
	.4byte	0x2f0
	.byte	0x47
	.uleb128 0xd
	.4byte	.LASF43
	.byte	0xc
	.2byte	0x118
	.4byte	0x300
	.byte	0x48
	.uleb128 0xd
	.4byte	.LASF44
	.byte	0xc
	.2byte	0x121
	.4byte	0x81
	.byte	0x50
	.uleb128 0xd
	.4byte	.LASF45
	.byte	0xc
	.2byte	0x129
	.4byte	0x93
	.byte	0x58
	.uleb128 0xd
	.4byte	.LASF46
	.byte	0xc
	.2byte	0x12a
	.4byte	0x93
	.byte	0x5c
	.uleb128 0xd
	.4byte	.LASF47
	.byte	0xc
	.2byte	0x12b
	.4byte	0x93
	.byte	0x60
	.uleb128 0xd
	.4byte	.LASF48
	.byte	0xc
	.2byte	0x12c
	.4byte	0x93
	.byte	0x64
	.uleb128 0xd
	.4byte	.LASF49
	.byte	0xc
	.2byte	0x12e
	.4byte	0xa2
	.byte	0x68
	.uleb128 0xd
	.4byte	.LASF50
	.byte	0xc
	.2byte	0x12f
	.4byte	0x4f
	.byte	0x6c
	.uleb128 0xd
	.4byte	.LASF51
	.byte	0xc
	.2byte	0x131
	.4byte	0x306
	.byte	0x70
	.byte	0
	.uleb128 0xe
	.4byte	.LASF143
	.byte	0xc
	.byte	0x96
	.uleb128 0xc
	.4byte	.LASF53
	.byte	0xc
	.byte	0xc
	.byte	0x9c
	.4byte	0x2e4
	.uleb128 0x8
	.4byte	.LASF54
	.byte	0xc
	.byte	0x9d
	.4byte	0x2e4
	.byte	0
	.uleb128 0x8
	.4byte	.LASF55
	.byte	0xc
	.byte	0x9e
	.4byte	0x2ea
	.byte	0x4
	.uleb128 0x8
	.4byte	.LASF56
	.byte	0xc
	.byte	0xa2
	.4byte	0x4f
	.byte	0x8
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x2b3
	.uleb128 0x6
	.byte	0x4
	.4byte	0x12f
	.uleb128 0x9
	.4byte	0x9b
	.4byte	0x300
	.uleb128 0xa
	.4byte	0x8c
	.byte	0
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x2ac
	.uleb128 0x9
	.4byte	0x9b
	.4byte	0x316
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x27
	.byte	0
	.uleb128 0x4
	.4byte	.LASF57
	.byte	0xb
	.byte	0x5a
	.4byte	0x6f
	.uleb128 0x6
	.byte	0x4
	.4byte	0x4f
	.uleb128 0x2
	.byte	0x10
	.byte	0x4
	.4byte	.LASF58
	.uleb128 0x4
	.4byte	.LASF59
	.byte	0xd
	.byte	0x1a
	.4byte	0x33
	.uleb128 0x4
	.4byte	.LASF60
	.byte	0xd
	.byte	0x1e
	.4byte	0x5d
	.uleb128 0x2
	.byte	0x8
	.byte	0x4
	.4byte	.LASF61
	.uleb128 0x7
	.byte	0x8
	.byte	0xe
	.byte	0x72
	.4byte	0x36c
	.uleb128 0x8
	.4byte	.LASF62
	.byte	0xe
	.byte	0x74
	.4byte	0x32e
	.byte	0
	.uleb128 0x8
	.4byte	.LASF63
	.byte	0xe
	.byte	0x75
	.4byte	0x32e
	.byte	0x4
	.byte	0
	.uleb128 0xf
	.byte	0x8
	.byte	0xe
	.byte	0x6d
	.4byte	0x38b
	.uleb128 0x10
	.4byte	.LASF64
	.byte	0xe
	.byte	0x6e
	.4byte	0x339
	.uleb128 0x11
	.string	"ptr"
	.byte	0xe
	.byte	0x7a
	.4byte	0x34b
	.byte	0
	.uleb128 0xc
	.4byte	.LASF65
	.byte	0x20
	.byte	0xe
	.byte	0x3e
	.4byte	0x3c8
	.uleb128 0x8
	.4byte	.LASF66
	.byte	0xe
	.byte	0x4b
	.4byte	0x32e
	.byte	0
	.uleb128 0x8
	.4byte	.LASF67
	.byte	0xe
	.byte	0x5a
	.4byte	0x32e
	.byte	0x4
	.uleb128 0x8
	.4byte	.LASF68
	.byte	0xe
	.byte	0x7c
	.4byte	0x36c
	.byte	0x8
	.uleb128 0x8
	.4byte	.LASF69
	.byte	0xe
	.byte	0x90
	.4byte	0x32e
	.byte	0x10
	.byte	0
	.uleb128 0xc
	.4byte	.LASF70
	.byte	0x80
	.byte	0x1
	.byte	0x12
	.4byte	0x3df
	.uleb128 0x12
	.string	"v"
	.byte	0x1
	.byte	0x13
	.4byte	0x119
	.byte	0
	.byte	0
	.uleb128 0x13
	.4byte	.LASF71
	.4byte	0x20000
	.byte	0x1
	.byte	0x16
	.4byte	0x3f9
	.uleb128 0x12
	.string	"c"
	.byte	0x1
	.byte	0x17
	.4byte	0x3f9
	.byte	0
	.byte	0
	.uleb128 0x9
	.4byte	0x3c8
	.4byte	0x40a
	.uleb128 0x14
	.4byte	0x8c
	.2byte	0x3ff
	.byte	0
	.uleb128 0xc
	.4byte	.LASF72
	.byte	0x80
	.byte	0x1
	.byte	0x1a
	.4byte	0x423
	.uleb128 0x8
	.4byte	.LASF73
	.byte	0x1
	.byte	0x1b
	.4byte	0x119
	.byte	0
	.byte	0
	.uleb128 0x13
	.4byte	.LASF74
	.4byte	0x40080
	.byte	0x1
	.byte	0x1e
	.4byte	0x45b
	.uleb128 0x8
	.4byte	.LASF75
	.byte	0x1
	.byte	0x1f
	.4byte	0x3df
	.byte	0
	.uleb128 0x15
	.string	"c"
	.byte	0x1
	.byte	0x20
	.4byte	0x45b
	.4byte	0x20000
	.uleb128 0x16
	.4byte	.LASF76
	.byte	0x1
	.byte	0x21
	.4byte	0x4f
	.4byte	0x40000
	.byte	0
	.uleb128 0x9
	.4byte	0x40a
	.4byte	0x46c
	.uleb128 0x14
	.4byte	0x8c
	.2byte	0x3ff
	.byte	0
	.uleb128 0xc
	.4byte	.LASF77
	.byte	0x8
	.byte	0x1
	.byte	0x24
	.4byte	0x491
	.uleb128 0x8
	.4byte	.LASF78
	.byte	0x1
	.byte	0x25
	.4byte	0x119
	.byte	0
	.uleb128 0x8
	.4byte	.LASF79
	.byte	0x1
	.byte	0x26
	.4byte	0x491
	.byte	0x4
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x46c
	.uleb128 0xc
	.4byte	.LASF80
	.byte	0x80
	.byte	0x1
	.byte	0x29
	.4byte	0x4b0
	.uleb128 0x8
	.4byte	.LASF81
	.byte	0x1
	.byte	0x2a
	.4byte	0x491
	.byte	0
	.byte	0
	.uleb128 0x13
	.4byte	.LASF82
	.4byte	0x20000
	.byte	0x1
	.byte	0x2d
	.4byte	0x4ca
	.uleb128 0x12
	.string	"c"
	.byte	0x1
	.byte	0x2e
	.4byte	0x4ca
	.byte	0
	.byte	0
	.uleb128 0x9
	.4byte	0x497
	.4byte	0x4db
	.uleb128 0x14
	.4byte	0x8c
	.2byte	0x3ff
	.byte	0
	.uleb128 0x17
	.4byte	.LASF99
	.byte	0x3
	.byte	0xcf
	.4byte	0x4f
	.byte	0x3
	.4byte	0x524
	.uleb128 0x18
	.string	"v"
	.byte	0x3
	.byte	0xcf
	.4byte	0x524
	.uleb128 0x19
	.4byte	.LASF83
	.byte	0x3
	.byte	0xcf
	.4byte	0x119
	.uleb128 0x19
	.4byte	.LASF84
	.byte	0x3
	.byte	0xcf
	.4byte	0x119
	.uleb128 0x18
	.string	"cpu"
	.byte	0x3
	.byte	0xcf
	.4byte	0x4f
	.uleb128 0x1a
	.4byte	.LASF85
	.byte	0x3
	.byte	0xfc
	.uleb128 0x1a
	.4byte	.LASF86
	.byte	0x3
	.byte	0xff
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x119
	.uleb128 0x1b
	.4byte	.LASF144
	.byte	0x2
	.byte	0x8c
	.4byte	0x103
	.byte	0x3
	.uleb128 0x1c
	.4byte	.LASF94
	.byte	0x1
	.byte	0x48
	.byte	0x1
	.4byte	0x566
	.uleb128 0x19
	.4byte	.LASF75
	.byte	0x1
	.byte	0x48
	.4byte	0x566
	.uleb128 0x18
	.string	"cpu"
	.byte	0x1
	.byte	0x48
	.4byte	0x4f
	.uleb128 0x1d
	.4byte	.LASF96
	.4byte	0x57c
	.4byte	.LASF94
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x3df
	.uleb128 0x9
	.4byte	0xee
	.4byte	0x57c
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x12
	.byte	0
	.uleb128 0xb
	.4byte	0x56c
	.uleb128 0x1e
	.4byte	.LASF89
	.byte	0x4
	.byte	0x5f
	.4byte	0x4f
	.byte	0x3
	.4byte	0x5a9
	.uleb128 0x19
	.4byte	.LASF87
	.byte	0x4
	.byte	0x5f
	.4byte	0x5af
	.uleb128 0x19
	.4byte	.LASF88
	.byte	0x4
	.byte	0x5f
	.4byte	0x5b4
	.uleb128 0x1f
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x124
	.uleb128 0x20
	.4byte	0x5a9
	.uleb128 0x20
	.4byte	0xe8
	.uleb128 0x1e
	.4byte	.LASF90
	.byte	0x5
	.byte	0x4e
	.4byte	0x93
	.byte	0x3
	.4byte	0x5eb
	.uleb128 0x19
	.4byte	.LASF91
	.byte	0x5
	.byte	0x4e
	.4byte	0x93
	.uleb128 0x19
	.4byte	.LASF92
	.byte	0x5
	.byte	0x4e
	.4byte	0x4f
	.uleb128 0x19
	.4byte	.LASF93
	.byte	0x5
	.byte	0x4e
	.4byte	0xa2
	.byte	0
	.uleb128 0x1c
	.4byte	.LASF95
	.byte	0x1
	.byte	0x70
	.byte	0x1
	.4byte	0x63a
	.uleb128 0x21
	.4byte	.LASF97
	.byte	0x1
	.byte	0x72
	.4byte	0xf3
	.uleb128 0x22
	.string	"i"
	.byte	0x1
	.byte	0x73
	.4byte	0x4f
	.uleb128 0x22
	.string	"sum"
	.byte	0x1
	.byte	0x74
	.4byte	0x10e
	.uleb128 0x21
	.4byte	.LASF98
	.byte	0x1
	.byte	0x75
	.4byte	0x63a
	.uleb128 0x21
	.4byte	.LASF78
	.byte	0x1
	.byte	0x76
	.4byte	0x423
	.uleb128 0x1d
	.4byte	.LASF96
	.4byte	0x659
	.4byte	.LASF95
	.byte	0
	.uleb128 0x9
	.4byte	0xf8
	.4byte	0x649
	.uleb128 0x23
	.4byte	0x8c
	.byte	0
	.uleb128 0x9
	.4byte	0xee
	.4byte	0x659
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x14
	.byte	0
	.uleb128 0xb
	.4byte	0x649
	.uleb128 0x24
	.4byte	.LASF100
	.byte	0x3
	.2byte	0x10a
	.4byte	0x4f
	.byte	0x3
	.4byte	0x6ba
	.uleb128 0x25
	.string	"v"
	.byte	0x3
	.2byte	0x10a
	.4byte	0x524
	.uleb128 0x26
	.4byte	.LASF101
	.byte	0x3
	.2byte	0x10a
	.4byte	0x119
	.uleb128 0x26
	.4byte	.LASF102
	.byte	0x3
	.2byte	0x10b
	.4byte	0x316
	.uleb128 0x26
	.4byte	.LASF103
	.byte	0x3
	.2byte	0x10b
	.4byte	0x524
	.uleb128 0x25
	.string	"cpu"
	.byte	0x3
	.2byte	0x10b
	.4byte	0x4f
	.uleb128 0x27
	.4byte	.LASF85
	.byte	0x3
	.2byte	0x140
	.uleb128 0x27
	.4byte	.LASF86
	.byte	0x3
	.2byte	0x143
	.byte	0
	.uleb128 0x28
	.4byte	.LASF106
	.byte	0x1
	.byte	0xd1
	.4byte	0x93
	.byte	0x1
	.4byte	0x6f7
	.uleb128 0x18
	.string	"arg"
	.byte	0x1
	.byte	0xd1
	.4byte	0x93
	.uleb128 0x22
	.string	"i"
	.byte	0x1
	.byte	0xd3
	.4byte	0x4f
	.uleb128 0x21
	.4byte	.LASF104
	.byte	0x1
	.byte	0xd4
	.4byte	0x6f7
	.uleb128 0x29
	.uleb128 0x21
	.4byte	.LASF105
	.byte	0x1
	.byte	0xdd
	.4byte	0x491
	.byte	0
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x4b0
	.uleb128 0x28
	.4byte	.LASF107
	.byte	0x1
	.byte	0xc6
	.4byte	0x491
	.byte	0x1
	.4byte	0x72f
	.uleb128 0x19
	.4byte	.LASF104
	.byte	0x1
	.byte	0xc6
	.4byte	0x6f7
	.uleb128 0x18
	.string	"cpu"
	.byte	0x1
	.byte	0xc6
	.4byte	0x4f
	.uleb128 0x21
	.4byte	.LASF105
	.byte	0x1
	.byte	0xc8
	.4byte	0x491
	.byte	0
	.uleb128 0x1e
	.4byte	.LASF108
	.byte	0x4
	.byte	0x66
	.4byte	0x4f
	.byte	0x3
	.4byte	0x74c
	.uleb128 0x19
	.4byte	.LASF88
	.byte	0x4
	.byte	0x66
	.4byte	0x5b4
	.uleb128 0x1f
	.byte	0
	.uleb128 0x2a
	.4byte	0x536
	.4byte	.LFB125
	.4byte	.LFE125-.LFB125
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x7ae
	.uleb128 0x2b
	.4byte	0x54d
	.uleb128 0x6
	.byte	0xfa
	.4byte	0x54d
	.byte	0x9f
	.uleb128 0x2b
	.4byte	0x542
	.uleb128 0x6
	.byte	0xfa
	.4byte	0x542
	.byte	0x9f
	.uleb128 0x2c
	.4byte	0x558
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5645
	.uleb128 0x2d
	.4byte	.LVL1
	.4byte	0x135c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC1
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8
	.byte	0x4a
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0
	.byte	0
	.byte	0
	.uleb128 0x2f
	.4byte	.LASF109
	.byte	0x1
	.byte	0x32
	.4byte	0x4f
	.4byte	.LFB115
	.4byte	.LFE115-.LFB115
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x850
	.uleb128 0x30
	.4byte	.LASF75
	.byte	0x1
	.byte	0x32
	.4byte	0x566
	.4byte	.LLST0
	.uleb128 0x31
	.string	"cpu"
	.byte	0x1
	.byte	0x34
	.4byte	0x4f
	.uleb128 0x1
	.byte	0x5a
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0
	.uleb128 0x22
	.string	"ret"
	.byte	0x1
	.byte	0x37
	.4byte	0x4f
	.uleb128 0x33
	.4byte	0x52a
	.4byte	.LBB73
	.4byte	.Ldebug_ranges0+0x18
	.byte	0x1
	.byte	0x39
	.uleb128 0x34
	.4byte	0x4db
	.4byte	.LBB77
	.4byte	.Ldebug_ranges0+0x38
	.byte	0x1
	.byte	0x3a
	.uleb128 0x35
	.4byte	0x50a
	.4byte	.LLST1
	.uleb128 0x35
	.4byte	0x4ff
	.4byte	.LLST2
	.uleb128 0x35
	.4byte	0x4f4
	.4byte	.LLST3
	.uleb128 0x35
	.4byte	0x4eb
	.4byte	.LLST4
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x38
	.uleb128 0x36
	.4byte	0x515
	.4byte	.L5
	.uleb128 0x36
	.4byte	0x51c
	.4byte	.L4
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x2f
	.4byte	.LASF110
	.byte	0x1
	.byte	0x52
	.4byte	0x93
	.4byte	.LFB117
	.4byte	.LFE117-.LFB117
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x9ef
	.uleb128 0x37
	.string	"arg"
	.byte	0x1
	.byte	0x52
	.4byte	0x93
	.4byte	.LLST5
	.uleb128 0x38
	.4byte	.LASF78
	.byte	0x1
	.byte	0x54
	.4byte	0x9ef
	.4byte	.LLST6
	.uleb128 0x39
	.string	"i"
	.byte	0x1
	.byte	0x55
	.4byte	0x4f
	.4byte	.LLST7
	.uleb128 0x39
	.string	"cpu"
	.byte	0x1
	.byte	0x55
	.4byte	0x4f
	.4byte	.LLST8
	.uleb128 0x3a
	.4byte	0x536
	.4byte	.LBB86
	.4byte	.Ldebug_ranges0+0x58
	.byte	0x1
	.byte	0x5f
	.4byte	0x8e8
	.uleb128 0x3b
	.4byte	0x54d
	.uleb128 0x35
	.4byte	0x542
	.4byte	.LLST9
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x58
	.uleb128 0x2c
	.4byte	0x558
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5645
	.uleb128 0x2d
	.4byte	.LVL20
	.4byte	0x74c
	.uleb128 0x3c
	.4byte	0x542
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB92
	.4byte	.LBE92-.LBB92
	.byte	0x1
	.byte	0x58
	.4byte	0x932
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST10
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST11
	.uleb128 0x2d
	.4byte	.LVL24
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC2
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB94
	.4byte	.LBE94-.LBB94
	.byte	0x1
	.byte	0x62
	.4byte	0x97c
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST12
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST13
	.uleb128 0x2d
	.4byte	.LVL29
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC3
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL8
	.4byte	0x1372
	.uleb128 0x3f
	.4byte	.LVL11
	.4byte	0x7ae
	.4byte	0x999
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL17
	.4byte	0x137d
	.uleb128 0x3e
	.4byte	.LVL21
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL23
	.4byte	0x1393
	.4byte	0x9bf
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL25
	.4byte	0x139f
	.uleb128 0x3e
	.4byte	.LVL26
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL28
	.4byte	0x1393
	.4byte	0x9e5
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL30
	.4byte	0x139f
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x423
	.uleb128 0x2a
	.4byte	0x536
	.4byte	.LFB116
	.4byte	.LFE116-.LFB116
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xa42
	.uleb128 0x35
	.4byte	0x542
	.4byte	.LLST14
	.uleb128 0x35
	.4byte	0x54d
	.4byte	.LLST15
	.uleb128 0x2c
	.4byte	0x558
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5645
	.uleb128 0x2d
	.4byte	.LVL33
	.4byte	0x74c
	.uleb128 0x3c
	.4byte	0x542
	.uleb128 0x3
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x3c
	.4byte	0x54d
	.uleb128 0x3
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0
	.byte	0
	.uleb128 0x2a
	.4byte	0x5eb
	.4byte	.LFB118
	.4byte	.LFE118-.LFB118
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xb71
	.uleb128 0x40
	.4byte	0x5f7
	.byte	0xc8
	.uleb128 0x41
	.4byte	0x602
	.4byte	.LLST16
	.uleb128 0x41
	.4byte	0x60b
	.4byte	.LLST17
	.uleb128 0x42
	.4byte	0x616
	.4byte	0x63a
	.4byte	.LLST18
	.uleb128 0x2c
	.4byte	0x621
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2c
	.4byte	0x62c
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5672
	.uleb128 0x3a
	.4byte	0x5b9
	.4byte	.LBB102
	.4byte	.Ldebug_ranges0+0x78
	.byte	0x1
	.byte	0x78
	.4byte	0xace
	.uleb128 0x3b
	.4byte	0x5df
	.uleb128 0x3b
	.4byte	0x5d4
	.uleb128 0x3b
	.4byte	0x5c9
	.uleb128 0x2d
	.4byte	.LVL35
	.4byte	0x13ab
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0xc
	.4byte	0x40080
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB109
	.4byte	.LBE109-.LBB109
	.4byte	0xb2f
	.uleb128 0x44
	.4byte	0x5f7
	.uleb128 0x44
	.4byte	0x602
	.uleb128 0x44
	.4byte	0x60b
	.uleb128 0x45
	.4byte	0x616
	.4byte	0xb71
	.uleb128 0x44
	.4byte	0x621
	.uleb128 0x2c
	.4byte	0x62c
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5672
	.uleb128 0x2d
	.4byte	.LVL48
	.4byte	0x135c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC4
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8
	.byte	0x86
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0+20
	.byte	0
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL38
	.4byte	0x13b4
	.4byte	0xb54
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 -4
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8a
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL40
	.4byte	0x13bf
	.4byte	0xb67
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL49
	.4byte	0x13ca
	.byte	0
	.uleb128 0x9
	.4byte	0xf8
	.4byte	0xb80
	.uleb128 0x23
	.4byte	0x8c
	.byte	0
	.uleb128 0x46
	.4byte	.LASF116
	.byte	0x1
	.byte	0x89
	.4byte	.LFB119
	.4byte	.LFE119-.LFB119
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xc68
	.uleb128 0x47
	.4byte	.LASF104
	.byte	0x1
	.byte	0x89
	.4byte	0x6f7
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x47
	.4byte	.LASF105
	.byte	0x1
	.byte	0x8a
	.4byte	0x491
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x47
	.4byte	.LASF111
	.byte	0x1
	.byte	0x8b
	.4byte	0x321
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x31
	.string	"cpu"
	.byte	0x1
	.byte	0x8d
	.4byte	0x4f
	.uleb128 0x1
	.byte	0x5a
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x98
	.uleb128 0x48
	.4byte	.LASF112
	.byte	0x1
	.byte	0x90
	.4byte	0x524
	.uleb128 0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.uleb128 0x48
	.4byte	.LASF113
	.byte	0x1
	.byte	0x90
	.4byte	0x119
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x48
	.4byte	.LASF83
	.byte	0x1
	.byte	0x90
	.4byte	0x119
	.uleb128 0x1
	.byte	0x57
	.uleb128 0x22
	.string	"ret"
	.byte	0x1
	.byte	0x91
	.4byte	0x4f
	.uleb128 0x33
	.4byte	0x52a
	.4byte	.LBB111
	.4byte	.Ldebug_ranges0+0xb0
	.byte	0x1
	.byte	0x93
	.uleb128 0x49
	.4byte	0x4db
	.4byte	.LBB115
	.4byte	.LBE115-.LBB115
	.byte	0x1
	.byte	0x99
	.uleb128 0x35
	.4byte	0x50a
	.4byte	.LLST19
	.uleb128 0x35
	.4byte	0x4ff
	.4byte	.LLST20
	.uleb128 0x35
	.4byte	0x4f4
	.4byte	.LLST21
	.uleb128 0x35
	.4byte	0x4eb
	.4byte	.LLST22
	.uleb128 0x4a
	.4byte	.LBB116
	.4byte	.LBE116-.LBB116
	.uleb128 0x36
	.4byte	0x515
	.4byte	.L45
	.uleb128 0x36
	.4byte	0x51c
	.4byte	.L44
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x2f
	.4byte	.LASF114
	.byte	0x1
	.byte	0xa7
	.4byte	0x491
	.4byte	.LFB120
	.4byte	.LFE120-.LFB120
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xd7a
	.uleb128 0x30
	.4byte	.LASF104
	.byte	0x1
	.byte	0xa7
	.4byte	0x6f7
	.4byte	.LLST23
	.uleb128 0x30
	.4byte	.LASF111
	.byte	0x1
	.byte	0xa8
	.4byte	0x321
	.4byte	.LLST24
	.uleb128 0x4b
	.4byte	.Ldebug_ranges0+0xc8
	.4byte	0xd70
	.uleb128 0x48
	.4byte	.LASF81
	.byte	0x1
	.byte	0xab
	.4byte	0x491
	.uleb128 0x3
	.byte	0x91
	.sleb128 -72
	.uleb128 0x38
	.4byte	.LASF112
	.byte	0x1
	.byte	0xac
	.4byte	0x524
	.4byte	.LLST25
	.uleb128 0x4c
	.4byte	.LASF101
	.byte	0x1
	.byte	0xac
	.4byte	0x119
	.byte	0
	.uleb128 0x38
	.4byte	.LASF103
	.byte	0x1
	.byte	0xac
	.4byte	0x524
	.4byte	.LLST26
	.uleb128 0x4c
	.4byte	.LASF115
	.byte	0x1
	.byte	0xad
	.4byte	0x316
	.byte	0x4
	.uleb128 0x22
	.string	"ret"
	.byte	0x1
	.byte	0xae
	.4byte	0x4f
	.uleb128 0x39
	.string	"cpu"
	.byte	0x1
	.byte	0xae
	.4byte	0x4f
	.4byte	.LLST27
	.uleb128 0x3a
	.4byte	0x65e
	.4byte	.LBB119
	.4byte	.Ldebug_ranges0+0xe8
	.byte	0x1
	.byte	0xb5
	.4byte	0xd60
	.uleb128 0x35
	.4byte	0x69d
	.4byte	.LLST28
	.uleb128 0x35
	.4byte	0x691
	.4byte	.LLST29
	.uleb128 0x35
	.4byte	0x685
	.4byte	.LLST30
	.uleb128 0x35
	.4byte	0x679
	.4byte	.LLST31
	.uleb128 0x35
	.4byte	0x66f
	.4byte	.LLST32
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0xe8
	.uleb128 0x36
	.4byte	0x6a9
	.4byte	.L54
	.uleb128 0x36
	.4byte	0x6b1
	.4byte	.L55
	.byte	0
	.byte	0
	.uleb128 0x4d
	.4byte	0x52a
	.4byte	.LBB124
	.4byte	.LBE124-.LBB124
	.byte	0x1
	.byte	0xb0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL64
	.4byte	0x13ca
	.byte	0
	.uleb128 0x2a
	.4byte	0x6ba
	.4byte	.LFB122
	.4byte	.LFE122-.LFB122
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xf1a
	.uleb128 0x35
	.4byte	0x6ca
	.4byte	.LLST33
	.uleb128 0x41
	.4byte	0x6d5
	.4byte	.LLST34
	.uleb128 0x41
	.4byte	0x6de
	.4byte	.LLST35
	.uleb128 0x43
	.4byte	.LBB139
	.4byte	.LBE139-.LBB139
	.4byte	0xdfc
	.uleb128 0x41
	.4byte	0x6ea
	.4byte	.LLST36
	.uleb128 0x3f
	.4byte	.LVL68
	.4byte	0xc68
	.4byte	0xdd7
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL70
	.4byte	0x13d3
	.uleb128 0x2d
	.4byte	.LVL71
	.4byte	0xb80
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB140
	.4byte	.LBE140-.LBB140
	.4byte	0xe97
	.uleb128 0x35
	.4byte	0x6ca
	.4byte	.LLST37
	.uleb128 0x4a
	.4byte	.LBB141
	.4byte	.LBE141-.LBB141
	.uleb128 0x44
	.4byte	0x6d5
	.uleb128 0x44
	.4byte	0x6de
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB142
	.4byte	.LBE142-.LBB142
	.byte	0x1
	.byte	0xd7
	.4byte	0xe6f
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST38
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST39
	.uleb128 0x2d
	.4byte	.LVL80
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC2
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL78
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL79
	.4byte	0x1393
	.4byte	0xe8c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL81
	.4byte	0x139f
	.byte	0
	.byte	0
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB144
	.4byte	.LBE144-.LBB144
	.byte	0x1
	.byte	0xe6
	.4byte	0xee1
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST40
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST41
	.uleb128 0x2d
	.4byte	.LVL86
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC3
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL66
	.4byte	0x1372
	.uleb128 0x3e
	.4byte	.LVL73
	.4byte	0x137d
	.uleb128 0x3e
	.4byte	.LVL83
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL85
	.4byte	0x1393
	.4byte	0xf10
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL87
	.4byte	0x139f
	.byte	0
	.uleb128 0x2a
	.4byte	0x6fd
	.4byte	.LFB121
	.4byte	.LFE121-.LFB121
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xf47
	.uleb128 0x35
	.4byte	0x70d
	.4byte	.LLST42
	.uleb128 0x35
	.4byte	0x718
	.4byte	.LLST43
	.uleb128 0x2c
	.4byte	0x723
	.uleb128 0x1
	.byte	0x59
	.byte	0
	.uleb128 0x46
	.4byte	.LASF117
	.byte	0x1
	.byte	0xef
	.4byte	.LFB123
	.4byte	.LFE123-.LFB123
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x1195
	.uleb128 0x39
	.string	"i"
	.byte	0x1
	.byte	0xf1
	.4byte	0x4f
	.4byte	.LLST44
	.uleb128 0x39
	.string	"j"
	.byte	0x1
	.byte	0xf1
	.4byte	0x4f
	.4byte	.LLST45
	.uleb128 0x39
	.string	"sum"
	.byte	0x1
	.byte	0xf2
	.4byte	0x10e
	.4byte	.LLST46
	.uleb128 0x38
	.4byte	.LASF118
	.byte	0x1
	.byte	0xf2
	.4byte	0x10e
	.4byte	.LLST47
	.uleb128 0x48
	.4byte	.LASF104
	.byte	0x1
	.byte	0xf3
	.4byte	0x4b0
	.uleb128 0x2
	.byte	0x87
	.sleb128 0
	.uleb128 0x48
	.4byte	.LASF98
	.byte	0x1
	.byte	0xf4
	.4byte	0x1195
	.uleb128 0x3
	.byte	0x91
	.sleb128 -852
	.uleb128 0x48
	.4byte	.LASF119
	.byte	0x1
	.byte	0xf5
	.4byte	0xdd
	.uleb128 0x3
	.byte	0x91
	.sleb128 -980
	.uleb128 0x4e
	.4byte	.LASF96
	.4byte	0x11b5
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5725
	.uleb128 0x3a
	.4byte	0x5b9
	.4byte	.LBB146
	.4byte	.Ldebug_ranges0+0x108
	.byte	0x1
	.byte	0xf7
	.4byte	0x101b
	.uleb128 0x35
	.4byte	0x5df
	.4byte	.LLST48
	.uleb128 0x35
	.4byte	0x5d4
	.4byte	.LLST49
	.uleb128 0x35
	.4byte	0x5c9
	.4byte	.LLST50
	.uleb128 0x2d
	.4byte	.LVL94
	.4byte	0x13ab
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x87
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x88
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0x40
	.byte	0x3d
	.byte	0x24
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB150
	.4byte	.LBE150-.LBB150
	.4byte	0x1038
	.uleb128 0x38
	.4byte	.LASF120
	.byte	0x1
	.byte	0xfc
	.4byte	0xa2
	.4byte	.LLST51
	.byte	0
	.uleb128 0x4b
	.4byte	.Ldebug_ranges0+0x120
	.4byte	0x1090
	.uleb128 0x38
	.4byte	.LASF105
	.byte	0x1
	.byte	0xff
	.4byte	0x491
	.4byte	.LLST52
	.uleb128 0x3f
	.4byte	.LVL99
	.4byte	0x13de
	.4byte	0x1063
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x1
	.byte	0x38
	.byte	0
	.uleb128 0x2d
	.4byte	.LVL126
	.4byte	0x135c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC5
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0xa
	.2byte	0x104
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0+44
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB153
	.4byte	.LBE153-.LBB153
	.4byte	0x1103
	.uleb128 0x4f
	.4byte	.LASF105
	.byte	0x1
	.2byte	0x113
	.4byte	0x491
	.uleb128 0x43
	.4byte	.LBB154
	.4byte	.LBE154-.LBB154
	.4byte	0x10c7
	.uleb128 0x50
	.4byte	.LASF120
	.byte	0x1
	.2byte	0x115
	.4byte	0xa2
	.4byte	.LLST53
	.byte	0
	.uleb128 0x51
	.4byte	0x6fd
	.4byte	.LBB155
	.4byte	.Ldebug_ranges0+0x140
	.byte	0x1
	.2byte	0x118
	.4byte	0x10f9
	.uleb128 0x3b
	.4byte	0x718
	.uleb128 0x35
	.4byte	0x70d
	.4byte	.LLST54
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x140
	.uleb128 0x41
	.4byte	0x723
	.4byte	.LLST55
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL116
	.4byte	0x13ea
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL95
	.4byte	0x13f6
	.4byte	0x1123
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x88
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x8
	.byte	0x80
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8f
	.sleb128 28
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL105
	.4byte	0x13b4
	.4byte	0x1148
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 -4
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8c
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x87
	.sleb128 0
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL106
	.4byte	0x13bf
	.4byte	0x115b
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL127
	.4byte	0x135c
	.4byte	0x118b
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC6
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0xa
	.2byte	0x123
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0+44
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL128
	.4byte	0x13ca
	.byte	0
	.uleb128 0x9
	.4byte	0xf8
	.4byte	0x11a5
	.uleb128 0xa
	.4byte	0x8c
	.byte	0xc7
	.byte	0
	.uleb128 0x9
	.4byte	0xee
	.4byte	0x11b5
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x10
	.byte	0
	.uleb128 0xb
	.4byte	0x11a5
	.uleb128 0x52
	.4byte	.LASF121
	.byte	0x1
	.2byte	0x126
	.4byte	0x4f
	.4byte	.LFB124
	.4byte	.LFE124-.LFB124
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x1330
	.uleb128 0x27
	.4byte	.LASF122
	.byte	0x1
	.2byte	0x138
	.uleb128 0x53
	.4byte	0x72f
	.4byte	.LBB162
	.4byte	.LBE162-.LBB162
	.byte	0x1
	.2byte	0x12d
	.4byte	0x120d
	.uleb128 0x35
	.4byte	0x73f
	.4byte	.LLST56
	.uleb128 0x2d
	.4byte	.LVL131
	.4byte	0x140f
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC7
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0x72f
	.4byte	.LBB164
	.4byte	.LBE164-.LBB164
	.byte	0x1
	.2byte	0x12f
	.4byte	0x123e
	.uleb128 0x35
	.4byte	0x73f
	.4byte	.LLST57
	.uleb128 0x2d
	.4byte	.LVL133
	.4byte	0x140f
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC8
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0x581
	.4byte	.LBB166
	.4byte	.LBE166-.LBB166
	.byte	0x1
	.2byte	0x129
	.4byte	0x1289
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST58
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST59
	.uleb128 0x2d
	.4byte	.LVL138
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC2
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0x581
	.4byte	.LBB168
	.4byte	.LBE168-.LBB168
	.byte	0x1
	.2byte	0x132
	.4byte	0x12d5
	.uleb128 0x2b
	.4byte	0x59c
	.uleb128 0x6
	.byte	0x3
	.4byte	.LC3
	.byte	0x9f
	.uleb128 0x2b
	.4byte	0x591
	.uleb128 0x1
	.byte	0x6e
	.uleb128 0x2d
	.4byte	.LVL142
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC3
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL129
	.4byte	0x1372
	.uleb128 0x3e
	.4byte	.LVL132
	.4byte	0x5eb
	.uleb128 0x3e
	.4byte	.LVL134
	.4byte	0xf47
	.uleb128 0x3e
	.4byte	.LVL135
	.4byte	0x137d
	.uleb128 0x3e
	.4byte	.LVL136
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL137
	.4byte	0x1393
	.4byte	0x1316
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL140
	.4byte	0x1388
	.uleb128 0x2d
	.4byte	.LVL141
	.4byte	0x1393
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x54
	.4byte	.LASF123
	.byte	0xb
	.byte	0xa8
	.4byte	0x2ea
	.uleb128 0x54
	.4byte	.LASF124
	.byte	0xb
	.byte	0xa9
	.4byte	0x2ea
	.uleb128 0x54
	.4byte	.LASF125
	.byte	0xb
	.byte	0xaa
	.4byte	0x2ea
	.uleb128 0x54
	.4byte	.LASF126
	.byte	0x2
	.byte	0x33
	.4byte	0x38b
	.uleb128 0x55
	.4byte	.LASF127
	.4byte	.LASF127
	.byte	0xf
	.byte	0x45
	.uleb128 0x55
	.4byte	.LASF128
	.4byte	.LASF128
	.byte	0x4
	.byte	0x55
	.uleb128 0x55
	.4byte	.LASF129
	.4byte	.LASF129
	.byte	0x2
	.byte	0x6a
	.uleb128 0x55
	.4byte	.LASF130
	.4byte	.LASF130
	.byte	0x2
	.byte	0x6f
	.uleb128 0x55
	.4byte	.LASF131
	.4byte	.LASF131
	.byte	0x10
	.byte	0x32
	.uleb128 0x56
	.4byte	.LASF132
	.4byte	.LASF132
	.byte	0x11
	.2byte	0x198
	.uleb128 0x56
	.4byte	.LASF85
	.4byte	.LASF85
	.byte	0x12
	.2byte	0x203
	.uleb128 0x57
	.4byte	.LASF90
	.4byte	.LASF90
	.uleb128 0x55
	.4byte	.LASF133
	.4byte	.LASF133
	.byte	0x13
	.byte	0xe9
	.uleb128 0x55
	.4byte	.LASF134
	.4byte	.LASF134
	.byte	0x13
	.byte	0xfa
	.uleb128 0x57
	.4byte	.LASF135
	.4byte	.LASF135
	.uleb128 0x55
	.4byte	.LASF136
	.4byte	.LASF136
	.byte	0x14
	.byte	0x41
	.uleb128 0x56
	.4byte	.LASF137
	.4byte	.LASF137
	.byte	0x12
	.2byte	0x1d2
	.uleb128 0x56
	.4byte	.LASF138
	.4byte	.LASF138
	.byte	0x12
	.2byte	0x1e3
	.uleb128 0x55
	.4byte	.LASF139
	.4byte	.LASF139
	.byte	0x14
	.byte	0x7a
	.uleb128 0x58
	.uleb128 0xc
	.byte	0x9e
	.uleb128 0xa
	.byte	0x73
	.byte	0x70
	.byte	0x69
	.byte	0x6e
	.byte	0x6c
	.byte	0x6f
	.byte	0x63
	.byte	0x6b
	.byte	0xa
	.byte	0
	.uleb128 0x59
	.4byte	.LASF145
	.4byte	.LASF146
	.byte	0x15
	.byte	0
	.4byte	.LASF145
	.uleb128 0x58
	.uleb128 0xf
	.byte	0x9e
	.uleb128 0xd
	.byte	0x70
	.byte	0x65
	.byte	0x72
	.byte	0x63
	.byte	0x70
	.byte	0x75
	.byte	0x5f
	.byte	0x6c
	.byte	0x69
	.byte	0x73
	.byte	0x74
	.byte	0xa
	.byte	0
	.byte	0
	.section	.debug_abbrev,"",@progbits
.Ldebug_abbrev0:
	.uleb128 0x1
	.uleb128 0x11
	.byte	0x1
	.uleb128 0x25
	.uleb128 0xe
	.uleb128 0x13
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x1b
	.uleb128 0xe
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x10
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x2
	.uleb128 0x24
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.byte	0
	.byte	0
	.uleb128 0x3
	.uleb128 0x24
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0x8
	.byte	0
	.byte	0
	.uleb128 0x4
	.uleb128 0x16
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x5
	.uleb128 0xf
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x6
	.uleb128 0xf
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x7
	.uleb128 0x13
	.byte	0x1
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x8
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x9
	.uleb128 0x1
	.byte	0x1
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xa
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xb
	.uleb128 0x26
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xc
	.uleb128 0x13
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xd
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xe
	.uleb128 0x16
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xf
	.uleb128 0x17
	.byte	0x1
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x10
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x11
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x12
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x13
	.uleb128 0x13
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0xb
	.uleb128 0x6
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x14
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0x5
	.byte	0
	.byte	0
	.uleb128 0x15
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x16
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x17
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x18
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x19
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x1a
	.uleb128 0xa
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x1b
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x1c
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x1d
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x1c
	.uleb128 0xe
	.byte	0
	.byte	0
	.uleb128 0x1e
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x1f
	.uleb128 0x18
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x20
	.uleb128 0x37
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x21
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x22
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x23
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x24
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x25
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x26
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x27
	.uleb128 0xa
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.byte	0
	.byte	0
	.uleb128 0x28
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x29
	.uleb128 0xb
	.byte	0x1
	.byte	0
	.byte	0
	.uleb128 0x2a
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x2b
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2c
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2d
	.uleb128 0x4109
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x2e
	.uleb128 0x410a
	.byte	0
	.uleb128 0x2
	.uleb128 0x18
	.uleb128 0x2111
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2f
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x30
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x31
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x32
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x55
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x33
	.uleb128 0x1d
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x34
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x35
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x36
	.uleb128 0xa
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.byte	0
	.byte	0
	.uleb128 0x37
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x38
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x39
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x3a
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3b
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3c
	.uleb128 0x410a
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2111
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x3d
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3e
	.uleb128 0x4109
	.byte	0
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3f
	.uleb128 0x4109
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x40
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x1c
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x41
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x42
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x43
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x44
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x45
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x46
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x47
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x48
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x49
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x4a
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x4b
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x4c
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1c
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x4d
	.uleb128 0x1d
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x4e
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x4f
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x50
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x51
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0x5
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x52
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x53
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0x5
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x54
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.byte	0
	.byte	0
	.uleb128 0x55
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x56
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.byte	0
	.byte	0
	.uleb128 0x57
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.byte	0
	.byte	0
	.uleb128 0x58
	.uleb128 0x36
	.byte	0
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x59
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x6e
	.uleb128 0xe
	.byte	0
	.byte	0
	.byte	0
	.section	.debug_loc,"",@progbits
.Ldebug_loc0:
.LLST0:
	.4byte	.LVL2
	.4byte	.LVL5
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL5
	.4byte	.LFE115
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST1:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST2:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x2
	.byte	0x31
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST3:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST4:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST5:
	.4byte	.LVL6
	.4byte	.LVL8-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL8-1
	.4byte	.LVL18
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL18
	.4byte	.LVL19
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL19
	.4byte	.LVL22
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL22
	.4byte	.LVL25
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL25
	.4byte	.LVL27
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL27
	.4byte	.LFE117
	.2byte	0x5
	.byte	0x8d
	.sleb128 -262144
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST6:
	.4byte	.LVL7
	.4byte	.LVL8-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL8-1
	.4byte	.LVL18
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL18
	.4byte	.LVL19
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL19
	.4byte	.LVL22
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL22
	.4byte	.LVL25
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL25
	.4byte	.LVL27
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL27
	.4byte	.LFE117
	.2byte	0x5
	.byte	0x8d
	.sleb128 -262144
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST7:
	.4byte	.LVL9
	.4byte	.LVL10
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	.LVL10
	.4byte	.LVL16
	.2byte	0x1
	.byte	0x6e
	.4byte	.LVL19
	.4byte	.LVL20
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST8:
	.4byte	.LVL11
	.4byte	.LVL12
	.2byte	0x1
	.byte	0x53
	.4byte	0
	.4byte	0
.LLST9:
	.4byte	.LVL13
	.4byte	.LVL14
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL19
	.4byte	.LVL20
	.2byte	0x1
	.byte	0x6f
	.4byte	0
	.4byte	0
.LLST10:
	.4byte	.LVL23
	.4byte	.LVL24
	.2byte	0x6
	.byte	0x3
	.4byte	.LC2
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST11:
	.4byte	.LVL23
	.4byte	.LVL24
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST12:
	.4byte	.LVL28
	.4byte	.LVL29
	.2byte	0x6
	.byte	0x3
	.4byte	.LC3
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST13:
	.4byte	.LVL28
	.4byte	.LVL29
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST14:
	.4byte	.LVL31
	.4byte	.LVL33-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL33-1
	.4byte	.LFE116
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST15:
	.4byte	.LVL31
	.4byte	.LVL32
	.2byte	0x1
	.byte	0x54
	.4byte	.LVL32
	.4byte	.LFE116
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST16:
	.4byte	.LVL36
	.4byte	.LVL37
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST17:
	.4byte	.LVL41
	.4byte	.LVL42
	.2byte	0x6
	.byte	0x57
	.byte	0x93
	.uleb128 0x4
	.byte	0x5a
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL43
	.4byte	.LVL44
	.2byte	0x6
	.byte	0x57
	.byte	0x93
	.uleb128 0x4
	.byte	0x5a
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL47
	.4byte	.LVL48-1
	.2byte	0x6
	.byte	0x57
	.byte	0x93
	.uleb128 0x4
	.byte	0x5a
	.byte	0x93
	.uleb128 0x4
	.4byte	0
	.4byte	0
.LLST18:
	.4byte	.LVL36
	.4byte	.LVL39
	.2byte	0x2
	.byte	0x8c
	.sleb128 0
	.4byte	.LVL39
	.4byte	.LVL45
	.2byte	0x3
	.byte	0x8c
	.sleb128 -796
	.4byte	.LVL45
	.4byte	.LVL46
	.2byte	0x2
	.byte	0x71
	.sleb128 8
	.4byte	.LVL47
	.4byte	.LFE118
	.2byte	0x3
	.byte	0x8c
	.sleb128 -796
	.4byte	0
	.4byte	0
.LLST19:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST20:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x1
	.byte	0x54
	.4byte	0
	.4byte	0
.LLST21:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x1
	.byte	0x57
	.4byte	0
	.4byte	0
.LLST22:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST23:
	.4byte	.LVL55
	.4byte	.LVL58
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL58
	.4byte	.LVL59
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL60
	.4byte	.LFE120
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST24:
	.4byte	.LVL55
	.4byte	.LVL64-1
	.2byte	0x1
	.byte	0x54
	.4byte	.LVL64-1
	.4byte	.LFE120
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST25:
	.4byte	.LVL56
	.4byte	.LVL58
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL58
	.4byte	.LVL59
	.2byte	0x9
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL60
	.4byte	.LVL61
	.2byte	0x9
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST26:
	.4byte	.LVL56
	.4byte	.LVL62
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL62
	.4byte	.LVL63
	.2byte	0x4
	.byte	0x71
	.sleb128 -72
	.byte	0x9f
	.4byte	.LVL63
	.4byte	.LVL64-1
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL64-1
	.4byte	.LFE120
	.2byte	0x4
	.byte	0x91
	.sleb128 -72
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST27:
	.4byte	.LVL56
	.4byte	.LVL61
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST28:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x1
	.byte	0x5a
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST29:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST30:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x2
	.byte	0x34
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x2
	.byte	0x34
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST31:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST32:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST33:
	.4byte	.LVL65
	.4byte	.LVL66-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL66-1
	.4byte	.LVL74
	.2byte	0x1
	.byte	0x6d
	.4byte	.LVL74
	.4byte	.LVL77
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL77
	.4byte	.LFE122
	.2byte	0x1
	.byte	0x6d
	.4byte	0
	.4byte	0
.LLST34:
	.4byte	.LVL67
	.4byte	.LVL71
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL71
	.4byte	.LVL72
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a1
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL72
	.4byte	.LVL76
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL81
	.4byte	.LVL84
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST35:
	.4byte	.LVL65
	.4byte	.LVL66-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL66-1
	.4byte	.LVL74
	.2byte	0x1
	.byte	0x6d
	.4byte	.LVL74
	.4byte	.LVL77
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL77
	.4byte	.LFE122
	.2byte	0x1
	.byte	0x6d
	.4byte	0
	.4byte	0
.LLST36:
	.4byte	.LVL69
	.4byte	.LVL70-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL70-1
	.4byte	.LVL75
	.2byte	0x1
	.byte	0x6e
	.4byte	.LVL81
	.4byte	.LVL82
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST37:
	.4byte	.LVL77
	.4byte	.LVL81
	.2byte	0x1
	.byte	0x6d
	.4byte	0
	.4byte	0
.LLST38:
	.4byte	.LVL79
	.4byte	.LVL80
	.2byte	0x6
	.byte	0x3
	.4byte	.LC2
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST39:
	.4byte	.LVL79
	.4byte	.LVL80
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST40:
	.4byte	.LVL85
	.4byte	.LVL86
	.2byte	0x6
	.byte	0x3
	.4byte	.LC3
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST41:
	.4byte	.LVL85
	.4byte	.LVL86
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST42:
	.4byte	.LVL88
	.4byte	.LVL91
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL91
	.4byte	.LFE121
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST43:
	.4byte	.LVL88
	.4byte	.LVL89
	.2byte	0x1
	.byte	0x54
	.4byte	.LVL89
	.4byte	.LFE121
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST44:
	.4byte	.LVL95
	.4byte	.LVL96
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	.LVL96
	.4byte	.LVL102
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL102
	.4byte	.LVL103
	.2byte	0x3
	.byte	0x88
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL103
	.4byte	.LVL104
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL107
	.4byte	.LVL108
	.2byte	0x3
	.byte	0x8b
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL108
	.4byte	.LVL118
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL118
	.4byte	.LVL119
	.2byte	0x3
	.byte	0x8b
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL119
	.4byte	.LVL123
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL126
	.4byte	.LFE123
	.2byte	0x1
	.byte	0x6b
	.4byte	0
	.4byte	0
.LLST45:
	.4byte	.LVL97
	.4byte	.LVL100
	.2byte	0x1
	.byte	0x6e
	.4byte	.LVL100
	.4byte	.LVL101
	.2byte	0x3
	.byte	0x8e
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL101
	.4byte	.LVL102
	.2byte	0x6
	.byte	0x73
	.sleb128 0
	.byte	0x6
	.byte	0x23
	.uleb128 0x1
	.byte	0x9f
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST46:
	.4byte	.LVL92
	.4byte	.LVL107
	.2byte	0xa
	.byte	0x9e
	.uleb128 0x8
	.4byte	0
	.4byte	0

	.4byte	.LVL107
	.4byte	.LVL110
	.2byte	0x6
	.byte	0x6c
	.byte	0x93
	.uleb128 0x4
	.byte	0x6e
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL112
	.4byte	.LVL114
	.2byte	0x6
	.byte	0x6c
	.byte	0x93
	.uleb128 0x4
	.byte	0x6e
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL115
	.4byte	.LVL120
	.2byte	0x6
	.byte	0x6c
	.byte	0x93
	.uleb128 0x4
	.byte	0x6e
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0xa
	.byte	0x9e
	.uleb128 0x8
	.4byte	0
	.4byte	0

	.4byte	0
	.4byte	0
.LLST47:
	.4byte	.LVL92
	.4byte	.LVL96
	.2byte	0xa
	.byte	0x9e
	.uleb128 0x8
	.4byte	0
	.4byte	0

	.4byte	.LVL96
	.4byte	.LVL98
	.2byte	0x6
	.byte	0x6a
	.byte	0x93
	.uleb128 0x4
	.byte	0x6d
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL102
	.4byte	.LVL122
	.2byte	0x6
	.byte	0x6a
	.byte	0x93
	.uleb128 0x4
	.byte	0x6d
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL126
	.4byte	.LFE123
	.2byte	0x6
	.byte	0x6a
	.byte	0x93
	.uleb128 0x4
	.byte	0x6d
	.byte	0x93
	.uleb128 0x4
	.4byte	0
	.4byte	0
.LLST48:
	.4byte	.LVL92
	.4byte	.LVL94
	.2byte	0x4
	.byte	0x40
	.byte	0x3d
	.byte	0x24
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST49:
	.4byte	.LVL92
	.4byte	.LVL94
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST50:
	.4byte	.LVL92
	.4byte	.LVL93
	.2byte	0x7
	.byte	0x87
	.sleb128 0
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	.LVL93
	.4byte	.LVL94
	.2byte	0x8
	.byte	0x71
	.sleb128 135
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST51:
	.4byte	.LVL96
	.4byte	.LVL103
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL103
	.4byte	.LVL121
	.2byte	0x3
	.byte	0x88
	.sleb128 -1
	.byte	0x9f
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL126
	.4byte	.LFE123
	.2byte	0x3
	.byte	0x88
	.sleb128 -1
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST52:
	.4byte	.LVL99
	.4byte	.LVL102
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL124
	.4byte	.LVL125
	.2byte	0x1
	.byte	0x53
	.4byte	0
	.4byte	0
.LLST53:
	.4byte	.LVL107
	.4byte	.LVL108
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL108
	.4byte	.LVL109
	.2byte	0x3
	.byte	0x8b
	.sleb128 -1
	.byte	0x9f
	.4byte	.LVL109
	.4byte	.LVL119
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL119
	.4byte	.LVL120
	.2byte	0x3
	.byte	0x8b
	.sleb128 -1
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST54:
	.4byte	.LVL110
	.4byte	.LVL113
	.2byte	0x8
	.byte	0x71
	.sleb128 135
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	.LVL116
	.4byte	.LVL120
	.2byte	0x8
	.byte	0x71
	.sleb128 135
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST55:
	.4byte	.LVL111
	.4byte	.LVL113
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL117
	.4byte	.LVL120
	.2byte	0x1
	.byte	0x53
	.4byte	0
	.4byte	0
.LLST56:
	.4byte	.LVL130
	.4byte	.LVL131
	.2byte	0x6
	.byte	0xf2
	.4byte	.Ldebug_info0+5121
	.sleb128 0
	.4byte	0
	.4byte	0
.LLST57:
	.4byte	.LVL132
	.4byte	.LVL133
	.2byte	0x6
	.byte	0xf2
	.4byte	.Ldebug_info0+5150
	.sleb128 0
	.4byte	0
	.4byte	0
.LLST58:
	.4byte	.LVL137
	.4byte	.LVL139
	.2byte	0x6
	.byte	0x3
	.4byte	.LC2
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST59:
	.4byte	.LVL137
	.4byte	.LVL139
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
	.section	.debug_aranges,"",@progbits
	.4byte	0x24
	.2byte	0x2
	.4byte	.Ldebug_info0
	.byte	0x4
	.byte	0
	.2byte	0
	.2byte	0
	.4byte	.Ltext0
	.4byte	.Letext0-.Ltext0
	.4byte	.LFB124
	.4byte	.LFE124-.LFB124
	.4byte	0
	.4byte	0
	.section	.debug_ranges,"",@progbits
.Ldebug_ranges0:
	.4byte	.LBB72
	.4byte	.LBE72
	.4byte	.LBB85
	.4byte	.LBE85
	.4byte	0
	.4byte	0
	.4byte	.LBB73
	.4byte	.LBE73
	.4byte	.LBB81
	.4byte	.LBE81
	.4byte	.LBB83
	.4byte	.LBE83
	.4byte	0
	.4byte	0
	.4byte	.LBB77
	.4byte	.LBE77
	.4byte	.LBB82
	.4byte	.LBE82
	.4byte	.LBB84
	.4byte	.LBE84
	.4byte	0
	.4byte	0
	.4byte	.LBB86
	.4byte	.LBE86
	.4byte	.LBB90
	.4byte	.LBE90
	.4byte	.LBB91
	.4byte	.LBE91
	.4byte	0
	.4byte	0
	.4byte	.LBB102
	.4byte	.LBE102
	.4byte	.LBB106
	.4byte	.LBE106
	.4byte	.LBB107
	.4byte	.LBE107
	.4byte	0
	.4byte	0
	.4byte	.LBB110
	.4byte	.LBE110
	.4byte	.LBB117
	.4byte	.LBE117
	.4byte	0
	.4byte	0
	.4byte	.LBB111
	.4byte	.LBE111
	.4byte	.LBB114
	.4byte	.LBE114
	.4byte	0
	.4byte	0
	.4byte	.LBB118
	.4byte	.LBE118
	.4byte	.LBB127
	.4byte	.LBE127
	.4byte	.LBB128
	.4byte	.LBE128
	.4byte	0
	.4byte	0
	.4byte	.LBB119
	.4byte	.LBE119
	.4byte	.LBB123
	.4byte	.LBE123
	.4byte	.LBB126
	.4byte	.LBE126
	.4byte	0
	.4byte	0
	.4byte	.LBB146
	.4byte	.LBE146
	.4byte	.LBB149
	.4byte	.LBE149
	.4byte	0
	.4byte	0
	.4byte	.LBB151
	.4byte	.LBE151
	.4byte	.LBB152
	.4byte	.LBE152
	.4byte	.LBB161
	.4byte	.LBE161
	.4byte	0
	.4byte	0
	.4byte	.LBB155
	.4byte	.LBE155
	.4byte	.LBB159
	.4byte	.LBE159
	.4byte	.LBB160
	.4byte	.LBE160
	.4byte	0
	.4byte	0
	.4byte	.Ltext0
	.4byte	.Letext0
	.4byte	.LFB124
	.4byte	.LFE124
	.4byte	0
	.4byte	0
	.section	.debug_line,"",@progbits
.Ldebug_line0:
	.section	.debug_str,"MS",@progbits,1
.LASF84:
	.string	"newv"
.LASF102:
	.string	"voffp"
.LASF17:
	.string	"pthread_t"
.LASF42:
	.string	"_shortbuf"
.LASF143:
	.string	"_IO_lock_t"
.LASF125:
	.string	"stderr"
.LASF146:
	.string	"__builtin_puts"
.LASF31:
	.string	"_IO_buf_end"
.LASF69:
	.string	"flags"
.LASF83:
	.string	"expect"
.LASF126:
	.string	"__rseq_abi"
.LASF29:
	.string	"_IO_write_end"
.LASF2:
	.string	"unsigned int"
.LASF79:
	.string	"next"
.LASF23:
	.string	"_flags"
.LASF81:
	.string	"head"
.LASF134:
	.string	"pthread_join"
.LASF111:
	.string	"_cpu"
.LASF132:
	.string	"strerror"
.LASF71:
	.string	"percpu_lock"
.LASF35:
	.string	"_markers"
.LASF133:
	.string	"pthread_create"
.LASF122:
	.string	"error"
.LASF94:
	.string	"rseq_percpu_unlock"
.LASF131:
	.string	"__errno_location"
.LASF104:
	.string	"list"
.LASF99:
	.string	"rseq_cmpeqv_storev"
.LASF114:
	.string	"this_cpu_list_pop"
.LASF18:
	.string	"uint32_t"
.LASF124:
	.string	"stdout"
.LASF34:
	.string	"_IO_save_end"
.LASF137:
	.string	"malloc"
.LASF93:
	.string	"__len"
.LASF73:
	.string	"count"
.LASF15:
	.string	"__cpu_mask"
.LASF109:
	.string	"rseq_this_cpu_lock"
.LASF7:
	.string	"long long unsigned int"
.LASF33:
	.string	"_IO_backup_base"
.LASF44:
	.string	"_offset"
.LASF91:
	.string	"__dest"
.LASF89:
	.string	"fprintf"
.LASF37:
	.string	"_fileno"
.LASF116:
	.string	"this_cpu_list_push"
.LASF85:
	.string	"abort"
.LASF145:
	.string	"puts"
.LASF144:
	.string	"rseq_cpu_start"
.LASF14:
	.string	"size_t"
.LASF115:
	.string	"offset"
.LASF130:
	.string	"rseq_unregister_current_thread"
.LASF26:
	.string	"_IO_read_base"
.LASF123:
	.string	"stdin"
.LASF54:
	.string	"_next"
.LASF138:
	.string	"free"
.LASF56:
	.string	"_pos"
.LASF103:
	.string	"load"
.LASF88:
	.string	"__fmt"
.LASF120:
	.string	"__cpu"
.LASF112:
	.string	"targetptr"
.LASF16:
	.string	"cpu_set_t"
.LASF87:
	.string	"__stream"
.LASF117:
	.string	"test_percpu_list"
.LASF13:
	.string	"char"
.LASF128:
	.string	"__fprintf_chk"
.LASF50:
	.string	"_mode"
.LASF53:
	.string	"_IO_marker"
.LASF95:
	.string	"test_percpu_spinlock"
.LASF24:
	.string	"_IO_read_ptr"
.LASF78:
	.string	"data"
.LASF63:
	.string	"ptr32"
.LASF59:
	.string	"__u32"
.LASF118:
	.string	"expected_sum"
.LASF86:
	.string	"cmpfail"
.LASF27:
	.string	"_IO_write_base"
.LASF6:
	.string	"long long int"
.LASF108:
	.string	"printf"
.LASF75:
	.string	"lock"
.LASF32:
	.string	"_IO_save_base"
.LASF62:
	.string	"padding"
.LASF90:
	.string	"memset"
.LASF8:
	.string	"__quad_t"
.LASF67:
	.string	"cpu_id"
.LASF45:
	.string	"__pad1"
.LASF46:
	.string	"__pad2"
.LASF47:
	.string	"__pad3"
.LASF48:
	.string	"__pad4"
.LASF49:
	.string	"__pad5"
.LASF65:
	.string	"rseq"
.LASF129:
	.string	"rseq_register_current_thread"
.LASF110:
	.string	"test_percpu_spinlock_thread"
.LASF41:
	.string	"_vtable_offset"
.LASF66:
	.string	"cpu_id_start"
.LASF72:
	.string	"test_data_entry"
.LASF58:
	.string	"long double"
.LASF20:
	.string	"intptr_t"
.LASF140:
	.string	"GNU C11 5.4.0 20160609 -Asystem=linux -Asystem=unix -Asystem=posix -msecure-plt -g -O2 -fstack-protector-strong"
.LASF97:
	.string	"num_threads"
.LASF64:
	.string	"ptr64"
.LASF60:
	.string	"__u64"
.LASF92:
	.string	"__ch"
.LASF25:
	.string	"_IO_read_end"
.LASF101:
	.string	"expectnot"
.LASF5:
	.string	"short int"
.LASF10:
	.string	"long int"
.LASF135:
	.string	"__stack_chk_fail"
.LASF70:
	.string	"percpu_lock_entry"
.LASF105:
	.string	"node"
.LASF19:
	.string	"uint64_t"
.LASF76:
	.string	"reps"
.LASF113:
	.string	"newval"
.LASF77:
	.string	"percpu_list_node"
.LASF98:
	.string	"test_threads"
.LASF43:
	.string	"_lock"
.LASF119:
	.string	"allowed_cpus"
.LASF12:
	.string	"sizetype"
.LASF3:
	.string	"long unsigned int"
.LASF22:
	.string	"__bits"
.LASF39:
	.string	"_old_offset"
.LASF82:
	.string	"percpu_list"
.LASF52:
	.string	"_IO_FILE"
.LASF100:
	.string	"rseq_cmpnev_storeoffp_load"
.LASF127:
	.string	"__assert_fail"
.LASF141:
	.string	"basic_percpu_ops_test.c"
.LASF0:
	.string	"unsigned char"
.LASF55:
	.string	"_sbuf"
.LASF28:
	.string	"_IO_write_ptr"
.LASF80:
	.string	"percpu_list_entry"
.LASF142:
	.string	"/home/compudj/git/librseq/tests"
.LASF136:
	.string	"sched_yield"
.LASF74:
	.string	"spinlock_test_data"
.LASF139:
	.string	"sched_getaffinity"
.LASF9:
	.string	"__off_t"
.LASF4:
	.string	"signed char"
.LASF57:
	.string	"off_t"
.LASF1:
	.string	"short unsigned int"
.LASF121:
	.string	"main"
.LASF96:
	.string	"__PRETTY_FUNCTION__"
.LASF61:
	.string	"double"
.LASF106:
	.string	"test_percpu_list_thread"
.LASF36:
	.string	"_chain"
.LASF107:
	.string	"__percpu_list_pop"
.LASF21:
	.string	"FILE"
.LASF38:
	.string	"_flags2"
.LASF68:
	.string	"rseq_cs"
.LASF40:
	.string	"_cur_column"
.LASF11:
	.string	"__off64_t"
.LASF51:
	.string	"_unused2"
.LASF30:
	.string	"_IO_buf_base"
	.ident	"GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609"
	.section	.note.GNU-stack,"",@progbits

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 12:33   ` Mathieu Desnoyers
@ 2020-07-08 14:00     ` Mathieu Desnoyers
  2020-07-08 14:21       ` Christophe Leroy
  2020-07-09  0:10       ` Segher Boessenkool
  0 siblings, 2 replies; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-08 14:00 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

[-- Attachment #1: Type: text/plain, Size: 6799 bytes --]

----- On Jul 8, 2020, at 8:33 AM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:

> ----- On Jul 7, 2020, at 8:59 PM, Segher Boessenkool segher@kernel.crashing.org
> wrote:
[...]
>> 
>> So perhaps you have code like
>> 
>>  int *p;
>>  int x;
>>  ...
>>  asm ("lwz %0,%1" : "=r"(x) : "m"(*p));
> 
> We indeed have explicit "lwz" and "stw" instructions in there.
> 
>> 
>> where that last line should actually read
>> 
>>  asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));
> 
> Indeed, turning those into "lwzx" and "stwx" seems to fix the issue.
> 
> There has been some level of extra CPP macro coating around those instructions
> to
> support both ppc32 and ppc64 with the same assembly. So adding %X[arg] is not
> trivial.
> Let me see what can be done here.

I did the following changes which appear to generate valid asm.
See attached corresponding .S output.

I grepped for uses of "m" asm operand in Linux powerpc code and noticed it's pretty much
always used with e.g. "lwz%U1%X1". I could find one blog post discussing that %U is about
update flag, and nothing about %X. Are those documented ?

Although it appears to generate valid asm, I have the feeling I'm relying on undocumented
features here. :-/

Here is the diff on https://git.kernel.org/pub/scm/libs/librseq/librseq.git/tree/include/rseq/rseq-ppc.h
It's only compile-tested on powerpc32 so far:

diff --git a/include/rseq/rseq-ppc.h b/include/rseq/rseq-ppc.h
index eb53953..f689fe9 100644
--- a/include/rseq/rseq-ppc.h
+++ b/include/rseq/rseq-ppc.h
@@ -47,9 +47,9 @@ do {                                                                  \

 #ifdef __PPC64__

-#define STORE_WORD     "std "
-#define LOAD_WORD      "ld "
-#define LOADX_WORD     "ldx "
+#define STORE_WORD(arg)        "std%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* To memory ("m" constraint) */
+#define LOAD_WORD(arg) "lwd%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* From memory ("m" constraint) */
+#define LOADX_WORD     "ldx "                                                  /* From base register ("b" constraint) */
 #define CMP_WORD       "cmpd "

 #define __RSEQ_ASM_DEFINE_TABLE(label, version, flags,                         \
@@ -89,9 +89,9 @@ do {                                                                  \

 #else /* #ifdef __PPC64__ */

-#define STORE_WORD     "stw "
-#define LOAD_WORD      "lwz "
-#define LOADX_WORD     "lwzx "
+#define STORE_WORD(arg)        "stw%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* To memory ("m" constraint) */
+#define LOAD_WORD(arg) "lwz%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* From memory ("m" constraint) */
+#define LOADX_WORD     "lwzx "                                                 /* From base register ("b" constraint) */
 #define CMP_WORD       "cmpw "

 #define __RSEQ_ASM_DEFINE_TABLE(label, version, flags,                         \
@@ -125,7 +125,7 @@ do {                                                                        \
                RSEQ_INJECT_ASM(1)                                              \
                "lis %%r17, (" __rseq_str(cs_label) ")@ha\n\t"                  \
                "addi %%r17, %%r17, (" __rseq_str(cs_label) ")@l\n\t"           \
-               "stw %%r17, %[" __rseq_str(rseq_cs) "]\n\t"                     \
+               "stw%U[" __rseq_str(rseq_cs) "]%X[" __rseq_str(rseq_cs) "] %%r17, %[" __rseq_str(rseq_cs) "]\n\t"                       \
                __rseq_str(label) ":\n\t"

 #endif /* #ifdef __PPC64__ */
@@ -136,7 +136,7 @@ do {                                                                        \

 #define RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, label)                     \
                RSEQ_INJECT_ASM(2)                                              \
-               "lwz %%r17, %[" __rseq_str(current_cpu_id) "]\n\t"              \
+               "lwz%U[" __rseq_str(current_cpu_id) "]%X[" __rseq_str(current_cpu_id) "] %%r17, %[" __rseq_str(current_cpu_id) "]\n\t" \
                "cmpw cr7, %[" __rseq_str(cpu_id) "], %%r17\n\t"                \
                "bne- cr7, " __rseq_str(label) "\n\t"
@@ -153,25 +153,25 @@ do {                                                                      \
  *     RSEQ_ASM_OP_* (else): doesn't have hard-code registers(unless cr7)
  */
 #define RSEQ_ASM_OP_CMPEQ(var, expect, label)                                  \
-               LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                   \
+               LOAD_WORD(var) "%%r17, %[" __rseq_str(var) "]\n\t"              \
                CMP_WORD "cr7, %%r17, %[" __rseq_str(expect) "]\n\t"            \
                "bne- cr7, " __rseq_str(label) "\n\t"

 #define RSEQ_ASM_OP_CMPNE(var, expectnot, label)                               \
-               LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                   \
+               LOAD_WORD(var) "%%r17, %[" __rseq_str(var) "]\n\t"              \
                CMP_WORD "cr7, %%r17, %[" __rseq_str(expectnot) "]\n\t"         \
                "beq- cr7, " __rseq_str(label) "\n\t"

 #define RSEQ_ASM_OP_STORE(value, var)                                          \
-               STORE_WORD "%[" __rseq_str(value) "], %[" __rseq_str(var) "]\n\t"
+               STORE_WORD(var) "%[" __rseq_str(value) "], %[" __rseq_str(var) "]\n\t"

 /* Load @var to r17 */
 #define RSEQ_ASM_OP_R_LOAD(var)                                                        \
-               LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"
+               LOAD_WORD(var) "%%r17, %[" __rseq_str(var) "]\n\t"

 /* Store r17 to @var */
 #define RSEQ_ASM_OP_R_STORE(var)                                               \
-               STORE_WORD "%%r17, %[" __rseq_str(var) "]\n\t"
+               STORE_WORD(var) "%%r17, %[" __rseq_str(var) "]\n\t"

 /* Add @count to r17 */
 #define RSEQ_ASM_OP_R_ADD(count)                                               \
@@ -196,11 +196,11 @@ do {                                                                      \
                "333:\n\t" \

 #define RSEQ_ASM_OP_R_FINAL_STORE(var, post_commit_label)                      \
-               STORE_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                  \
+               STORE_WORD(var) "%%r17, %[" __rseq_str(var) "]\n\t"                     \
                __rseq_str(post_commit_label) ":\n\t"

 #define RSEQ_ASM_OP_FINAL_STORE(value, var, post_commit_label)                 \
-               STORE_WORD "%[" __rseq_str(value) "], %[" __rseq_str(var) "]\n\t" \
+               STORE_WORD(var) "%[" __rseq_str(value) "], %[" __rseq_str(var) "]\n\t" \
                __rseq_str(post_commit_label) ":\n\t"

 static inline __attribute__((always_inline))


Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

[-- Attachment #2: basic_percpu_ops_test-fix.S --]
[-- Type: application/octet-stream, Size: 91499 bytes --]

	.file	"basic_percpu_ops_test.c"
	.machine ppc
	.section	".text"
.Ltext0:
	.cfi_sections	.debug_frame
	.align 2
	.p2align 4,,15
	.type	rseq_percpu_unlock.part.0, @function
rseq_percpu_unlock.part.0:
.LFB125:
	.file 1 "basic_percpu_ops_test.c"
	.loc 1 72 0
	.cfi_startproc
.LVL0:
	stwu 1,-16(1)
	.cfi_def_cfa_offset 16
	.loc 1 74 0
	lis 6,.LANCHOR0@ha
	.loc 1 72 0
	mflr 0
	.loc 1 74 0
	lis 4,.LC0@ha
	lis 3,.LC1@ha
	la 6,.LANCHOR0@l(6)
	li 5,74
	la 4,.LC0@l(4)
	la 3,.LC1@l(3)
	.loc 1 72 0
	stw 0,20(1)
	.cfi_offset 65, 4
	.loc 1 74 0
	bl __assert_fail
.LVL1:
	.cfi_endproc
.LFE125:
	.size	rseq_percpu_unlock.part.0,.-rseq_percpu_unlock.part.0
	.align 2
	.p2align 4,,15
	.globl rseq_this_cpu_lock
	.type	rseq_this_cpu_lock, @function
rseq_this_cpu_lock:
.LFB115:
	.loc 1 51 0
	.cfi_startproc
.LVL2:
	stwu 1,-80(1)
	.cfi_def_cfa_offset 80
.LBB72:
.LBB73:
.LBB74:
	.file 2 "../include/rseq/rseq.h"
	.loc 2 142 0
	lis 9,_GLOBAL_OFFSET_TABLE_@ha
	la 9,_GLOBAL_OFFSET_TABLE_@l(9)
	lwz 9,__rseq_abi@got@tprel(9)
.LBE74:
.LBE73:
.LBB77:
.LBB78:
	.file 3 "../include/rseq/rseq-ppc.h"
	.loc 3 211 0
	li 6,0
.LBE78:
.LBE77:
.LBB81:
.LBB75:
	.loc 2 142 0
	add 9,9,__rseq_abi@tls
.LBE75:
.LBE81:
.LBB82:
.LBB79:
	.loc 3 211 0
	li 7,1
.LBE79:
.LBE82:
.LBE72:
	.loc 1 51 0
	stw 17,20(1)
	.cfi_offset 17, -60
.L4:
.L7:
.L5:
.LBB85:
.LBB83:
.LBB76:
	.loc 2 142 0
	lwz 10,0(9)
.LVL3:
.LBE76:
.LBE83:
	.loc 1 58 0
	slwi 8,10,7
.LBB84:
.LBB80:
	.loc 3 211 0
#APP
 # 211 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.long 0x0, 1f, 0x0, (2f - 1f), 0x0, 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.long 0x0, 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.long 0x0, 1f, 0x0, .L7
	.popsection
	lis %r17, (3b)@ha
	addi %r17, %r17, (3b)@l
	stw %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	lwzx %r17, 3,8
	cmpw cr7, %r17, 6
	bne- cr7, .L7
	stwx 7, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L7
	.popsection
	
 # 0 "" 2
.LVL4:
#NO_APP
.LBE80:
.LBE84:
.LBE85:
	.loc 1 68 0
#APP
 # 68 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
	.loc 1 70 0
#NO_APP
	lwz 17,20(1)
	mr 3,10
.LVL5:
	addi 1,1,80
	.cfi_restore 17
	.cfi_def_cfa_offset 0
	blr
	.cfi_endproc
.LFE115:
	.size	rseq_this_cpu_lock,.-rseq_this_cpu_lock
	.align 2
	.p2align 4,,15
	.globl test_percpu_spinlock_thread
	.type	test_percpu_spinlock_thread, @function
test_percpu_spinlock_thread:
.LFB117:
	.loc 1 83 0
	.cfi_startproc
.LVL6:
	stwu 1,-32(1)
	.cfi_def_cfa_offset 32
	mflr 0
	stw 31,28(1)
	stw 0,36(1)
	stw 28,16(1)
	stw 29,20(1)
	stw 30,24(1)
	.cfi_offset 65, 4
	.cfi_offset 31, -4
	.cfi_offset 28, -16
	.cfi_offset 29, -12
	.cfi_offset 30, -8
	.loc 1 83 0
	mr 31,3
.LVL7:
	.loc 1 87 0
	bl rseq_register_current_thread
.LVL8:
	cmpwi 7,3,0
	bne- 7,.L11
.LVL9:
	.loc 1 92 0 discriminator 1
	addis 29,31,0x4
	li 30,0
	lwz 9,0(29)
.LBB86:
.LBB87:
	.loc 1 79 0 discriminator 1
	li 28,0
.LBE87:
.LBE86:
	.loc 1 92 0 discriminator 1
	cmpwi 7,9,0
	ble 7,.L17
.LVL10:
	.p2align 4,,15
.L18:
	.loc 1 93 0 discriminator 3
	mr 3,31
	bl rseq_this_cpu_lock
.LVL11:
	slwi 3,3,7
.LVL12:
	add 9,31,3
	.loc 1 94 0 discriminator 3
	addis 9,9,0x2
	lwz 10,0(9)
	addi 10,10,1
	stw 10,0(9)
.LVL13:
.LBB90:
.LBB88:
	.loc 1 74 0 discriminator 3
	lwzx 9,31,3
	cmpwi 7,9,1
	bne- 7,.L23
	.loc 1 79 0
#APP
 # 79 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
#NO_APP
	stwx 28,31,3
.LVL14:
.LBE88:
.LBE90:
	.loc 1 92 0
	addi 30,30,1
.LVL15:
	lwz 9,0(29)
	cmpw 7,9,30
	bgt 7,.L18
.LVL16:
.L17:
	.loc 1 97 0
	bl rseq_unregister_current_thread
.LVL17:
	cmpwi 7,3,0
	bne- 7,.L24
	.loc 1 104 0
	lwz 0,36(1)
	lwz 28,16(1)
	lwz 29,20(1)
	lwz 30,24(1)
	mtlr 0
	.cfi_remember_state
	.cfi_restore 65
	lwz 31,28(1)
.LVL18:
	addi 1,1,32
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_def_cfa_offset 0
	blr
.LVL19:
.L23:
	.cfi_restore_state
.LBB91:
.LBB89:
	bl rseq_percpu_unlock.part.0
.LVL20:
.L11:
.LBE89:
.LBE91:
	.loc 1 88 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 89 0
	bl __errno_location
.LVL21:
	.loc 1 88 0
	lwz 31,0(3)
.LVL22:
	mr 3,31
	bl strerror
.LVL23:
.LBB92:
.LBB93:
	.file 4 "/usr/include/powerpc-linux-gnu/bits/stdio2.h"
	.loc 4 97 0
	lis 5,.LC2@ha
	mr 6,31
	la 5,.LC2@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL24:
.LBE93:
.LBE92:
	.loc 1 90 0
	bl abort
.LVL25:
.L24:
	.loc 1 98 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 99 0
	bl __errno_location
.LVL26:
	.loc 1 98 0
	lwz 31,0(3)
.LVL27:
	mr 3,31
	bl strerror
.LVL28:
.LBB94:
.LBB95:
	.loc 4 97 0
	lis 5,.LC3@ha
	mr 6,31
	la 5,.LC3@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL29:
.LBE95:
.LBE94:
	.loc 1 100 0
	bl abort
.LVL30:
	.cfi_endproc
.LFE117:
	.size	test_percpu_spinlock_thread,.-test_percpu_spinlock_thread
	.align 2
	.p2align 4,,15
	.globl rseq_percpu_unlock
	.type	rseq_percpu_unlock, @function
rseq_percpu_unlock:
.LFB116:
	.loc 1 73 0
	.cfi_startproc
.LVL31:
	slwi 4,4,7
.LVL32:
	.loc 1 74 0
	lwzx 9,3,4
	cmpwi 7,9,1
	bne- 7,.L28
	.loc 1 79 0
#APP
 # 79 "basic_percpu_ops_test.c" 1
	lwsync
 # 0 "" 2
#NO_APP
	li 9,0
	stwx 9,3,4
	blr
.L28:
	.loc 1 73 0 discriminator 1
	stwu 1,-16(1)
	.cfi_def_cfa_offset 16
	mflr 0
	stw 0,20(1)
	.cfi_offset 65, 4
	bl rseq_percpu_unlock.part.0
.LVL33:
	.cfi_endproc
.LFE116:
	.size	rseq_percpu_unlock,.-rseq_percpu_unlock
	.align 2
	.p2align 4,,15
	.globl test_percpu_spinlock
	.type	test_percpu_spinlock, @function
test_percpu_spinlock:
.LFB118:
	.loc 1 113 0
	.cfi_startproc
	.loc 1 113 0
	stwu 1,-64(1)
	.cfi_def_cfa_offset 64
	lis 9,0xfffb
	mflr 0
	ori 9,9,0xff00
.LBB102:
.LBB103:
	.file 5 "/usr/include/powerpc-linux-gnu/bits/string3.h"
	.loc 5 90 0
	lis 5,0x4
	ori 5,5,0x80
	li 4,0
.LBE103:
.LBE102:
	.loc 1 113 0
	lwz 10,0(1)
	stw 25,36(1)
	stw 26,40(1)
	stw 27,44(1)
	stw 28,48(1)
	stw 29,52(1)
	stw 30,56(1)
	stw 31,60(1)
	stw 0,68(1)
	.cfi_offset 65, 4
	.cfi_offset 25, -28
	.cfi_offset 26, -24
	.cfi_offset 27, -20
	.cfi_offset 28, -16
	.cfi_offset 29, -12
	.cfi_offset 30, -8
	.cfi_offset 31, -4
	mr 31,1
	.cfi_def_cfa_register 31
	.loc 1 113 0
	stwux 10,1,9
	lis 26,test_percpu_spinlock_thread@ha
	la 26,test_percpu_spinlock_thread@l(26)
	addi 9,1,135
	lwz 8,-28680(2)
	stw 8,28(31)
	li 8,0
.LVL34:
	.loc 1 117 0
	stwu 10,-816(1)
	.loc 1 113 0
	rlwinm 30,9,0,0,24
.LBB106:
.LBB104:
	.loc 5 90 0
	mr 3,30
.LBE104:
.LBE106:
	.loc 1 121 0
	addis 27,30,0x4
.LBB107:
.LBB105:
	.loc 5 90 0
	bl memset
.LVL35:
.LBE105:
.LBE107:
	.loc 1 121 0
	li 9,5000
	.loc 1 117 0
	addi 28,1,8
.LVL36:
	.loc 1 121 0
	stw 9,0(27)
	mr 29,28
	addi 25,28,800
.LVL37:
	.p2align 5,,31
.L30:
	.loc 1 124 0 discriminator 3
	mr 3,29
	mr 6,30
	mr 5,26
	li 4,0
	addi 29,29,4
	bl pthread_create
.LVL38:
	.loc 1 123 0 discriminator 3
	cmplw 7,29,25
	bne 7,.L30
	addi 29,28,-4
	addi 28,28,796
.LVL39:
	.p2align 5,,31
.L31:
	.loc 1 128 0 discriminator 3
	lwzu 3,4(29)
	li 4,0
	bl pthread_join
.LVL40:
	.loc 1 127 0 discriminator 3
	cmplw 7,28,29
	bne 7,.L31
	addis 9,30,0x2
	.loc 1 127 0 is_stmt 0
	li 7,0
	li 10,0
	.p2align 5,,31
.L32:
.LVL41:
	.loc 1 132 0 is_stmt 1 discriminator 3
	lwz 8,0(9)
	addi 9,9,128
	.loc 1 131 0 discriminator 3
	cmplw 7,27,9
	.loc 1 132 0 discriminator 3
	srawi 6,8,31
	addc 10,8,10
.LVL42:
	adde 7,6,7
.LVL43:
	.loc 1 131 0 discriminator 3
	bne 7,.L32
	.loc 1 134 0
	lwz 9,0(27)
	li 8,200
	mulhw 8,9,8
	mulli 9,9,200
	cmplw 7,7,8
	bne- 7,.L36
	cmplw 7,10,9
	bne- 7,.L36
	.loc 1 135 0
	lwz 9,28(31)
	lwz 10,-28680(2)
	xor. 9,9,10
	li 10,0
.LVL44:
	bne- 0,.L42
	addi 11,31,64
	lwz 0,4(11)
	lwz 25,-28(11)
	lwz 31,-4(11)
	.cfi_remember_state
	.cfi_def_cfa 11, 0
	lwz 26,-24(11)
	mtlr 0
	.cfi_restore 65
	lwz 27,-20(11)
	lwz 28,-16(11)
.LVL45:
	lwz 29,-12(11)
	lwz 30,-8(11)
	mr 1,11
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_restore 27
	.cfi_restore 26
	.cfi_restore 25
	.cfi_def_cfa_register 1
.LVL46:
	blr
.LVL47:
.L36:
	.cfi_restore_state
.LBB108:
.LBB109:
	.loc 1 134 0
	lis 6,.LANCHOR0@ha
	lis 4,.LC0@ha
	la 6,.LANCHOR0@l(6)
	lis 3,.LC4@ha
	addi 6,6,20
	li 5,134
	la 4,.LC0@l(4)
	la 3,.LC4@l(3)
	bl __assert_fail
.LVL48:
.L42:
.LBE109:
.LBE108:
	.loc 1 135 0
	bl __stack_chk_fail
.LVL49:
	.cfi_endproc
.LFE118:
	.size	test_percpu_spinlock,.-test_percpu_spinlock
	.align 2
	.p2align 4,,15
	.globl this_cpu_list_push
	.type	this_cpu_list_push, @function
this_cpu_list_push:
.LFB119:
	.loc 1 140 0
	.cfi_startproc
.LVL50:
	stwu 1,-80(1)
	.cfi_def_cfa_offset 80
.LBB110:
.LBB111:
.LBB112:
	.loc 2 142 0
	lis 9,_GLOBAL_OFFSET_TABLE_@ha
	la 9,_GLOBAL_OFFSET_TABLE_@l(9)
	lwz 9,__rseq_abi@got@tprel(9)
	add 9,9,__rseq_abi@tls
.LBE112:
.LBE111:
.LBE110:
	.loc 1 140 0
	stw 17,20(1)
	.cfi_offset 17, -60
.L44:
.L45:
.LBB117:
.LBB114:
.LBB113:
	.loc 2 142 0
	lwz 10,0(9)
.LVL51:
.LBE113:
.LBE114:
	.loc 1 149 0
	slwi 8,10,7
	lwzx 7,3,8
.LVL52:
	.loc 1 152 0
	stw 7,4(4)
.LVL53:
.LBB115:
.LBB116:
	.loc 3 211 0
#APP
 # 211 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.long 0x0, 1f, 0x0, (2f - 1f), 0x0, 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.long 0x0, 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.long 0x0, 1f, 0x0, .L44
	.popsection
	lis %r17, (3b)@ha
	addi %r17, %r17, (3b)@l
	stw %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	lwzx %r17, 3,8
	cmpw cr7, %r17, 7
	bne- cr7, .L44
	stwx 4, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L44
	.popsection
	
 # 0 "" 2
.LVL54:
#NO_APP
.LBE116:
.LBE115:
.LBE117:
	.loc 1 158 0
	cmpwi 7,5,0
	beq 7,.L43
	.loc 1 159 0
	stw 10,0(5)
.L43:
	.loc 1 160 0
	lwz 17,20(1)
	addi 1,1,80
	.cfi_restore 17
	.cfi_def_cfa_offset 0
	blr
	.cfi_endproc
.LFE119:
	.size	this_cpu_list_push,.-this_cpu_list_push
	.align 2
	.p2align 4,,15
	.globl this_cpu_list_pop
	.type	this_cpu_list_pop, @function
this_cpu_list_pop:
.LFB120:
	.loc 1 169 0
	.cfi_startproc
.LVL55:
	stwu 1,-96(1)
	.cfi_def_cfa_offset 96
.LBB118:
.LBB119:
.LBB120:
	.loc 3 271 0
	li 6,0
.LBE120:
.LBE119:
.LBE118:
	.loc 1 169 0
	mflr 0
.LBB127:
.LBB123:
.LBB121:
	.loc 3 271 0
	li 7,4
.LBE121:
.LBE123:
.LBE127:
	.loc 1 169 0
	stw 0,100(1)
	stw 17,36(1)
	.cfi_offset 65, 4
	.cfi_offset 17, -60
	.loc 1 169 0
	lwz 9,-28680(2)
	stw 9,28(1)
	li 9,0
.LBB128:
.LBB124:
.LBB125:
	.loc 2 142 0
	lis 9,_GLOBAL_OFFSET_TABLE_@ha
	la 9,_GLOBAL_OFFSET_TABLE_@l(9)
	lwz 9,__rseq_abi@got@tprel(9)
	add 9,9,__rseq_abi@tls
.L57:
	lwz 10,0(9)
.LVL56:
.LBE125:
.LBE124:
	.loc 1 177 0
	slwi 8,10,7
.LBB126:
.LBB122:
	.loc 3 271 0
#APP
 # 271 "../include/rseq/rseq-ppc.h" 1
	.pushsection __rseq_cs, "aw"
	.balign 32
	3:
	.long 0x0, 0x0
	.long 0x0, 1f, 0x0, (2f - 1f), 0x0, 4f
	.popsection
	.pushsection __rseq_cs_ptr_array, "aw"
	.long 0x0, 3b
	.popsection
	.pushsection __rseq_exit_point_array, "aw"
	.long 0x0, 1f, 0x0, .L61
	.popsection
	lis %r17, (3b)@ha
	addi %r17, %r17, (3b)@l
	stw %r17, 8(9)
	1:
	lwz %r17, 4(9)
	cmpw cr7, 10, %r17
	bne- cr7, 4f
	lwzx %r17, 3,8
	cmpw cr7, %r17, 6
	beq- cr7, .L61
	lwzx %r17, 3,8
	stw %r17, 24(1)
	lwzx %r17, 7, %r17
	stwx %r17, 3,8
	2:
	.pushsection __rseq_failure, "ax"
	.long 0x0fe5000b
	4:
	b .L57
	.popsection
	
 # 0 "" 2
.LVL57:
#NO_APP
.LBE122:
.LBE126:
	.loc 1 184 0
	cmpwi 7,4,0
	beq 7,.L59
	.loc 1 185 0
	stw 10,0(4)
.L59:
	.loc 1 186 0
	lwz 3,24(1)
.LVL58:
	b .L55
.L54:
.LVL59:
.L61:
	.loc 1 189 0
	li 3,0
.LVL60:
.L55:
.LBE128:
	.loc 1 192 0 discriminator 1
	lwz 10,28(1)
	lwz 9,-28680(2)
	xor. 10,10,9
	li 9,0
.LVL61:
	bne- 0,.L67
	.loc 1 192 0 is_stmt 0
	lwz 0,100(1)
	lwz 17,36(1)
	addi 1,1,96
	.cfi_remember_state
	.cfi_restore 17
	.cfi_def_cfa_offset 0
.LVL62:
	mtlr 0
	.cfi_restore 65
	blr
.LVL63:
.L67:
	.cfi_restore_state
	bl __stack_chk_fail
.LVL64:
	.cfi_endproc
.LFE120:
	.size	this_cpu_list_pop,.-this_cpu_list_pop
	.align 2
	.p2align 4,,15
	.globl test_percpu_list_thread
	.type	test_percpu_list_thread, @function
test_percpu_list_thread:
.LFB122:
	.loc 1 210 0 is_stmt 1
	.cfi_startproc
.LVL65:
	stwu 1,-32(1)
	.cfi_def_cfa_offset 32
	mflr 0
	stw 29,20(1)
	stw 31,28(1)
	stw 0,36(1)
	stw 30,24(1)
	.cfi_offset 65, 4
	.cfi_offset 29, -12
	.cfi_offset 31, -4
	.cfi_offset 30, -8
	.loc 1 210 0
	mr 29,3
	.loc 1 214 0
	bl rseq_register_current_thread
.LVL66:
	lis 31,0x1
	ori 31,31,0x86a0
	cmpwi 7,3,0
	bne- 7,.L81
	.p2align 4,,15
.L75:
.LVL67:
.LBB139:
	.loc 1 223 0
	li 4,0
	mr 3,29
	bl this_cpu_list_pop
.LVL68:
	mr 30,3
.LVL69:
	.loc 1 224 0
	bl sched_yield
.LVL70:
	.loc 1 225 0
	cmpwi 7,30,0
	beq 7,.L70
	.loc 1 226 0
	li 5,0
	mr 4,30
	mr 3,29
	bl this_cpu_list_push
.LVL71:
.L70:
.LBE139:
	.loc 1 220 0 discriminator 2
	cmpwi 0,31,1
	addi 31,31,-1
.LVL72:
	bne 0,.L75
	.loc 1 229 0
	bl rseq_unregister_current_thread
.LVL73:
	cmpwi 7,3,0
	bne- 7,.L82
	.loc 1 236 0
	lwz 0,36(1)
	lwz 29,20(1)
.LVL74:
	lwz 30,24(1)
.LVL75:
	lwz 31,28(1)
.LVL76:
	addi 1,1,32
	.cfi_remember_state
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa_offset 0
	mtlr 0
	.cfi_restore 65
	blr
.LVL77:
.L81:
	.cfi_restore_state
.LBB140:
.LBB141:
	.loc 1 215 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 216 0
	bl __errno_location
.LVL78:
	.loc 1 215 0
	lwz 31,0(3)
	mr 3,31
	bl strerror
.LVL79:
.LBB142:
.LBB143:
	.loc 4 97 0
	lis 5,.LC2@ha
	mr 6,31
	la 5,.LC2@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL80:
.LBE143:
.LBE142:
	.loc 1 217 0
	bl abort
.LVL81:
.L82:
.LBE141:
.LBE140:
	.loc 1 230 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
.LVL82:
	.loc 1 231 0
	bl __errno_location
.LVL83:
	.loc 1 230 0
	lwz 31,0(3)
.LVL84:
	mr 3,31
	bl strerror
.LVL85:
.LBB144:
.LBB145:
	.loc 4 97 0
	lis 5,.LC3@ha
	mr 6,31
	la 5,.LC3@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL86:
.LBE145:
.LBE144:
	.loc 1 232 0
	bl abort
.LVL87:
	.cfi_endproc
.LFE122:
	.size	test_percpu_list_thread,.-test_percpu_list_thread
	.align 2
	.p2align 4,,15
	.globl __percpu_list_pop
	.type	__percpu_list_pop, @function
__percpu_list_pop:
.LFB121:
	.loc 1 199 0
	.cfi_startproc
.LVL88:
	stwu 1,-16(1)
	.cfi_def_cfa_offset 16
	slwi 4,4,7
.LVL89:
	.loc 1 202 0
	lwzx 9,3,4
.LVL90:
	.loc 1 203 0
	cmpwi 7,9,0
	beq 7,.L84
	.loc 1 205 0
	lwz 10,4(9)
	stwx 10,3,4
.L84:
	.loc 1 207 0
	mr 3,9
.LVL91:
	addi 1,1,16
	.cfi_def_cfa_offset 0
	blr
	.cfi_endproc
.LFE121:
	.size	__percpu_list_pop,.-__percpu_list_pop
	.align 2
	.p2align 4,,15
	.globl test_percpu_list
	.type	test_percpu_list, @function
test_percpu_list:
.LFB123:
	.loc 1 240 0
	.cfi_startproc
	stwu 1,-1008(1)
	.cfi_def_cfa_offset 1008
	lis 9,0xfffd
	mflr 0
	ori 9,9,0xff80
.LBB146:
.LBB147:
	.loc 5 90 0
	lis 5,0x2
	li 4,0
.LBE147:
.LBE146:
	.loc 1 240 0
	lwz 10,0(1)
	stw 0,1012(1)
	stw 23,972(1)
	stw 24,976(1)
	stw 25,980(1)
	stw 26,984(1)
	stw 27,988(1)
	stw 29,996(1)
	stw 31,1004(1)
	stw 28,992(1)
	.cfi_offset 65, 4
	.cfi_offset 23, -36
	.cfi_offset 24, -32
	.cfi_offset 25, -28
	.cfi_offset 26, -24
	.cfi_offset 27, -20
	.cfi_offset 29, -12
	.cfi_offset 31, -4
	.cfi_offset 28, -16
	mr 31,1
	.cfi_def_cfa_register 31
	stw 30,1000(1)
	.cfi_offset 30, -8
	.loc 1 240 0
	stwux 10,1,9
	.loc 1 242 0
	li 26,0
	li 29,0
	.loc 1 251 0
	li 24,0
	.loc 1 240 0
	addi 23,1,135
	lwz 9,-28680(2)
	stw 9,956(31)
	li 9,0
.LVL92:
	rlwinm 23,23,0,0,24
.LVL93:
.LBB149:
.LBB148:
	.loc 5 90 0
	mr 3,23
	bl memset
.LVL94:
.LBE148:
.LBE149:
	.loc 1 250 0
	addi 5,31,28
	li 4,128
	li 3,0
	mr 25,23
	bl sched_getaffinity
.LVL95:
	mr 27,23
.LVL96:
	.p2align 4,,15
.L93:
.LBB150:
	.loc 1 252 0
	addi 10,31,960
	rlwinm 9,24,29,3,29
	add 9,10,9
	rlwinm 10,24,0,27,31
	lwz 9,-932(9)
	srw 9,9,10
	andi. 10,9,1
	beq 0,.L90
	li 28,0
	li 30,1
.LVL97:
	.p2align 4,,15
.L114:
.LBE150:
.LBB151:
	.loc 1 257 0
	addc 29,30,29
.LVL98:
	.loc 1 259 0
	li 3,8
	.loc 1 257 0
	adde 26,28,26
	.loc 1 259 0
	bl malloc
.LVL99:
	.loc 1 260 0
	cmpwi 0,3,0
	beq- 0,.L121
	addic 10,30,1
	.loc 1 262 0 discriminator 2
	lwz 8,0(27)
	.loc 1 261 0 discriminator 2
	stw 30,0(3)
	addze 28,28
	.loc 1 263 0 discriminator 2
	stw 3,0(27)
.LVL100:
.LBE151:
	.loc 1 254 0 discriminator 2
	cmpwi 7,28,0
.LBB152:
	.loc 1 262 0 discriminator 2
	stw 8,4(3)
	mr 30,10
.LVL101:
.LBE152:
	.loc 1 254 0 discriminator 2
	bne 7,.L114
	cmplwi 7,10,101
	bne 7,.L114
.LVL102:
	.p2align 4,,15
.L90:
	.loc 1 251 0 discriminator 2
	cmpwi 7,24,1023
	addi 27,27,128
	addi 24,24,1
.LVL103:
	bne 7,.L93
	lis 28,test_percpu_list_thread@ha
	addi 30,31,156
	addi 27,31,956
	la 28,test_percpu_list_thread@l(28)
.LVL104:
	.p2align 5,,31
.L94:
	.loc 1 268 0 discriminator 3
	mr 3,30
	mr 6,23
	mr 5,28
	li 4,0
	addi 30,30,4
	bl pthread_create
.LVL105:
	.loc 1 267 0 discriminator 3
	cmplw 7,27,30
	bne 7,.L94
	addi 30,31,152
	addi 28,31,952
	.p2align 5,,31
.L95:
	.loc 1 272 0 discriminator 3
	lwzu 3,4(30)
	li 4,0
	bl pthread_join
.LVL106:
	.loc 1 271 0 discriminator 3
	cmplw 7,28,30
	bne 7,.L95
	li 28,0
	li 30,0
	li 27,0
	b .L98
.LVL107:
	.p2align 4,,15
.L96:
	.loc 1 274 0 discriminator 2
	cmpwi 7,27,1023
	addi 25,25,128
	addi 27,27,1
.LVL108:
	beq 7,.L122
.LVL109:
.L98:
.LBB153:
.LBB154:
	.loc 1 277 0
	addi 10,31,960
	rlwinm 9,27,29,3,29
	add 9,10,9
	rlwinm 10,27,0,27,31
	lwz 9,-932(9)
	srw 9,9,10
	andi. 10,9,1
	beq 0,.L96
.LVL110:
.LBE154:
.LBB155:
.LBB156:
	.loc 1 202 0
	lwz 3,0(25)
.LVL111:
	.loc 1 203 0
	cmpwi 7,3,0
	beq 7,.L96
	.p2align 4,,15
.L97:
.LVL112:
	.loc 1 205 0
	lwz 8,4(3)
.LBE156:
.LBE155:
	.loc 1 281 0
	lwz 9,0(3)
.LBB159:
.LBB157:
	.loc 1 205 0
	stw 8,0(25)
.LVL113:
.LBE157:
.LBE159:
	.loc 1 281 0
	srawi 10,9,31
	addc 30,9,30
.LVL114:
	adde 28,10,28
.LVL115:
	.loc 1 282 0
	bl free
.LVL116:
.LBB160:
.LBB158:
	.loc 1 202 0
	lwz 3,0(25)
.LVL117:
	.loc 1 203 0
	cmpwi 7,3,0
	bne 7,.L97
.LVL118:
.LBE158:
.LBE160:
.LBE153:
	.loc 1 274 0
	cmpwi 7,27,1023
	addi 25,25,128
	addi 27,27,1
.LVL119:
	bne 7,.L98
.LVL120:
.L122:
	.loc 1 291 0
	cmplw 7,28,26
	bne- 7,.L102
	cmplw 7,30,29
	bne- 7,.L102
	.loc 1 292 0
	lwz 9,956(31)
	lwz 10,-28680(2)
	xor. 9,9,10
	li 10,0
	bne- 0,.L123
	addi 11,31,1008
	lwz 0,4(11)
	lwz 23,-36(11)
	lwz 31,-4(11)
	.cfi_remember_state
	.cfi_def_cfa 11, 0
	lwz 24,-32(11)
.LVL121:
	mtlr 0
	.cfi_restore 65
	lwz 25,-28(11)
	lwz 26,-24(11)
.LVL122:
	lwz 27,-20(11)
.LVL123:
	lwz 28,-16(11)
	lwz 29,-12(11)
	lwz 30,-8(11)
	mr 1,11
	.cfi_restore 31
	.cfi_restore 30
	.cfi_restore 29
	.cfi_restore 28
	.cfi_restore 27
	.cfi_restore 26
	.cfi_restore 25
	.cfi_restore 24
	.cfi_restore 23
	.cfi_def_cfa_register 1
	blr
.LVL124:
.L121:
	.cfi_restore_state
.LBB161:
	.loc 1 260 0 discriminator 1
	lis 6,.LANCHOR0@ha
	lis 4,.LC0@ha
	la 6,.LANCHOR0@l(6)
	lis 3,.LC5@ha
.LVL125:
	addi 6,6,44
	li 5,260
	la 4,.LC0@l(4)
	la 3,.LC5@l(3)
	bl __assert_fail
.LVL126:
.L102:
.LBE161:
	.loc 1 291 0 discriminator 1
	lis 6,.LANCHOR0@ha
	lis 4,.LC0@ha
	la 6,.LANCHOR0@l(6)
	lis 3,.LC6@ha
	addi 6,6,44
	li 5,291
	la 4,.LC0@l(4)
	la 3,.LC6@l(3)
	bl __assert_fail
.LVL127:
.L123:
	.loc 1 292 0
	bl __stack_chk_fail
.LVL128:
	.cfi_endproc
.LFE123:
	.size	test_percpu_list,.-test_percpu_list
	.section	.text.startup,"ax",@progbits
	.align 2
	.p2align 4,,15
	.globl main
	.type	main, @function
main:
.LFB124:
	.loc 1 295 0
	.cfi_startproc
	stwu 1,-32(1)
	.cfi_def_cfa_offset 32
	mflr 0
	stw 30,24(1)
	stw 0,36(1)
	stw 31,28(1)
	.cfi_offset 65, 4
	.cfi_offset 30, -8
	.cfi_offset 31, -4
	.loc 1 296 0
	bl rseq_register_current_thread
.LVL129:
	cmpwi 7,3,0
	bne 7,.L131
.LVL130:
.LBB162:
.LBB163:
	.loc 4 104 0
	lis 3,.LC7@ha
	la 3,.LC7@l(3)
	bl puts
.LVL131:
.LBE163:
.LBE162:
	.loc 1 302 0
	bl test_percpu_spinlock
.LVL132:
.LBB164:
.LBB165:
	.loc 4 104 0
	lis 3,.LC8@ha
	la 3,.LC8@l(3)
	bl puts
.LVL133:
.LBE165:
.LBE164:
	.loc 1 304 0
	bl test_percpu_list
.LVL134:
	.loc 1 305 0
	bl rseq_unregister_current_thread
.LVL135:
	cmpwi 0,3,0
	bne 0,.L132
.L126:
	.loc 1 314 0
	lwz 0,36(1)
	lwz 30,24(1)
	lwz 31,28(1)
	addi 1,1,32
	.cfi_remember_state
	.cfi_restore 31
	.cfi_restore 30
	.cfi_def_cfa_offset 0
	mtlr 0
	.cfi_restore 65
	blr
.L131:
	.cfi_restore_state
	.loc 1 297 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 298 0
	bl __errno_location
.LVL136:
	.loc 1 297 0
	lwz 31,0(3)
	mr 3,31
	bl strerror
.LVL137:
.LBB166:
.LBB167:
	.loc 4 97 0
	lis 5,.LC2@ha
	mr 6,31
	la 5,.LC2@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL138:
.LBE167:
.LBE166:
	.loc 1 313 0
	li 3,-1
	b .L126
.LVL139:
.L132:
	.loc 1 306 0
	lis 9,stderr@ha
	lwz 30,stderr@l(9)
	.loc 1 307 0
	bl __errno_location
.LVL140:
	.loc 1 306 0
	lwz 31,0(3)
	mr 3,31
	bl strerror
.LVL141:
.LBB168:
.LBB169:
	.loc 4 97 0
	lis 5,.LC3@ha
	mr 6,31
	la 5,.LC3@l(5)
	li 4,1
	mr 7,3
	mr 3,30
	crxor 6,6,6
	bl __fprintf_chk
.LVL142:
.LBE169:
.LBE168:
	.loc 1 313 0
	li 3,-1
	b .L126
	.cfi_endproc
.LFE124:
	.size	main,.-main
	.section	.rodata
	.align 2
	.set	.LANCHOR0,. + 0
	.type	__PRETTY_FUNCTION__.5645, @object
	.size	__PRETTY_FUNCTION__.5645, 19
__PRETTY_FUNCTION__.5645:
	.string	"rseq_percpu_unlock"
	.zero	1
	.type	__PRETTY_FUNCTION__.5672, @object
	.size	__PRETTY_FUNCTION__.5672, 21
__PRETTY_FUNCTION__.5672:
	.string	"test_percpu_spinlock"
	.zero	3
	.type	__PRETTY_FUNCTION__.5725, @object
	.size	__PRETTY_FUNCTION__.5725, 17
__PRETTY_FUNCTION__.5725:
	.string	"test_percpu_list"
	.section	.rodata.str1.4,"aMS",@progbits,1
	.align 2
.LC0:
	.string	"basic_percpu_ops_test.c"
.LC1:
	.string	"lock->c[cpu].v == 1"
.LC2:
	.string	"Error: rseq_register_current_thread(...) failed(%d): %s\n"
	.zero	3
.LC3:
	.string	"Error: rseq_unregister_current_thread(...) failed(%d): %s\n"
	.zero	1
.LC4:
	.string	"sum == (uint64_t)data.reps * num_threads"
	.zero	3
.LC5:
	.string	"node"
	.zero	3
.LC6:
	.string	"sum == expected_sum"
.LC7:
	.string	"spinlock"
	.zero	3
.LC8:
	.string	"percpu_list"
	.section	".text"
.Letext0:
	.file 6 "/usr/include/powerpc-linux-gnu/bits/types.h"
	.file 7 "/usr/lib/gcc/powerpc-linux-gnu/5/include/stddef.h"
	.file 8 "/usr/include/powerpc-linux-gnu/bits/sched.h"
	.file 9 "/usr/include/powerpc-linux-gnu/bits/pthreadtypes.h"
	.file 10 "/usr/include/stdint.h"
	.file 11 "/usr/include/stdio.h"
	.file 12 "/usr/include/libio.h"
	.file 13 "/usr/include/asm-generic/int-ll64.h"
	.file 14 "/home/compudj/git/librseq/extra/linux/rseq.h"
	.file 15 "/usr/include/assert.h"
	.file 16 "/usr/include/powerpc-linux-gnu/bits/errno.h"
	.file 17 "/usr/include/string.h"
	.file 18 "/usr/include/stdlib.h"
	.file 19 "/usr/include/pthread.h"
	.file 20 "/usr/include/sched.h"
	.file 21 "<built-in>"
	.section	.debug_info,"",@progbits
.Ldebug_info0:
	.4byte	0x142c
	.2byte	0x4
	.4byte	.Ldebug_abbrev0
	.byte	0x4
	.uleb128 0x1
	.4byte	.LASF140
	.byte	0xc
	.4byte	.LASF141
	.4byte	.LASF142
	.4byte	.Ldebug_ranges0+0x160
	.4byte	0
	.4byte	.Ldebug_line0
	.uleb128 0x2
	.byte	0x1
	.byte	0x8
	.4byte	.LASF0
	.uleb128 0x2
	.byte	0x2
	.byte	0x7
	.4byte	.LASF1
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.4byte	.LASF2
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.4byte	.LASF3
	.uleb128 0x2
	.byte	0x1
	.byte	0x6
	.4byte	.LASF4
	.uleb128 0x2
	.byte	0x2
	.byte	0x5
	.4byte	.LASF5
	.uleb128 0x3
	.byte	0x4
	.byte	0x5
	.string	"int"
	.uleb128 0x2
	.byte	0x8
	.byte	0x5
	.4byte	.LASF6
	.uleb128 0x2
	.byte	0x8
	.byte	0x7
	.4byte	.LASF7
	.uleb128 0x4
	.4byte	.LASF8
	.byte	0x6
	.byte	0x37
	.4byte	0x56
	.uleb128 0x4
	.4byte	.LASF9
	.byte	0x6
	.byte	0x83
	.4byte	0x7a
	.uleb128 0x2
	.byte	0x4
	.byte	0x5
	.4byte	.LASF10
	.uleb128 0x4
	.4byte	.LASF11
	.byte	0x6
	.byte	0x84
	.4byte	0x64
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.4byte	.LASF12
	.uleb128 0x5
	.byte	0x4
	.uleb128 0x6
	.byte	0x4
	.4byte	0x9b
	.uleb128 0x2
	.byte	0x1
	.byte	0x8
	.4byte	.LASF13
	.uleb128 0x4
	.4byte	.LASF14
	.byte	0x7
	.byte	0xd8
	.4byte	0x33
	.uleb128 0x4
	.4byte	.LASF15
	.byte	0x8
	.byte	0x76
	.4byte	0x3a
	.uleb128 0x7
	.byte	0x80
	.byte	0x8
	.byte	0x7d
	.4byte	0xcd
	.uleb128 0x8
	.4byte	.LASF22
	.byte	0x8
	.byte	0x7f
	.4byte	0xcd
	.byte	0
	.byte	0
	.uleb128 0x9
	.4byte	0xad
	.4byte	0xdd
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x1f
	.byte	0
	.uleb128 0x4
	.4byte	.LASF16
	.byte	0x8
	.byte	0x80
	.4byte	0xb8
	.uleb128 0x6
	.byte	0x4
	.4byte	0xee
	.uleb128 0xb
	.4byte	0x9b
	.uleb128 0xb
	.4byte	0x4f
	.uleb128 0x4
	.4byte	.LASF17
	.byte	0x9
	.byte	0x31
	.4byte	0x3a
	.uleb128 0x4
	.4byte	.LASF18
	.byte	0xa
	.byte	0x33
	.4byte	0x33
	.uleb128 0x4
	.4byte	.LASF19
	.byte	0xa
	.byte	0x3a
	.4byte	0x5d
	.uleb128 0x4
	.4byte	.LASF20
	.byte	0xa
	.byte	0x7d
	.4byte	0x4f
	.uleb128 0x4
	.4byte	.LASF21
	.byte	0xb
	.byte	0x30
	.4byte	0x12f
	.uleb128 0xc
	.4byte	.LASF52
	.byte	0x98
	.byte	0xc
	.byte	0xf1
	.4byte	0x2ac
	.uleb128 0x8
	.4byte	.LASF23
	.byte	0xc
	.byte	0xf2
	.4byte	0x4f
	.byte	0
	.uleb128 0x8
	.4byte	.LASF24
	.byte	0xc
	.byte	0xf7
	.4byte	0x95
	.byte	0x4
	.uleb128 0x8
	.4byte	.LASF25
	.byte	0xc
	.byte	0xf8
	.4byte	0x95
	.byte	0x8
	.uleb128 0x8
	.4byte	.LASF26
	.byte	0xc
	.byte	0xf9
	.4byte	0x95
	.byte	0xc
	.uleb128 0x8
	.4byte	.LASF27
	.byte	0xc
	.byte	0xfa
	.4byte	0x95
	.byte	0x10
	.uleb128 0x8
	.4byte	.LASF28
	.byte	0xc
	.byte	0xfb
	.4byte	0x95
	.byte	0x14
	.uleb128 0x8
	.4byte	.LASF29
	.byte	0xc
	.byte	0xfc
	.4byte	0x95
	.byte	0x18
	.uleb128 0x8
	.4byte	.LASF30
	.byte	0xc
	.byte	0xfd
	.4byte	0x95
	.byte	0x1c
	.uleb128 0x8
	.4byte	.LASF31
	.byte	0xc
	.byte	0xfe
	.4byte	0x95
	.byte	0x20
	.uleb128 0xd
	.4byte	.LASF32
	.byte	0xc
	.2byte	0x100
	.4byte	0x95
	.byte	0x24
	.uleb128 0xd
	.4byte	.LASF33
	.byte	0xc
	.2byte	0x101
	.4byte	0x95
	.byte	0x28
	.uleb128 0xd
	.4byte	.LASF34
	.byte	0xc
	.2byte	0x102
	.4byte	0x95
	.byte	0x2c
	.uleb128 0xd
	.4byte	.LASF35
	.byte	0xc
	.2byte	0x104
	.4byte	0x2e4
	.byte	0x30
	.uleb128 0xd
	.4byte	.LASF36
	.byte	0xc
	.2byte	0x106
	.4byte	0x2ea
	.byte	0x34
	.uleb128 0xd
	.4byte	.LASF37
	.byte	0xc
	.2byte	0x108
	.4byte	0x4f
	.byte	0x38
	.uleb128 0xd
	.4byte	.LASF38
	.byte	0xc
	.2byte	0x10c
	.4byte	0x4f
	.byte	0x3c
	.uleb128 0xd
	.4byte	.LASF39
	.byte	0xc
	.2byte	0x10e
	.4byte	0x6f
	.byte	0x40
	.uleb128 0xd
	.4byte	.LASF40
	.byte	0xc
	.2byte	0x112
	.4byte	0x2c
	.byte	0x44
	.uleb128 0xd
	.4byte	.LASF41
	.byte	0xc
	.2byte	0x113
	.4byte	0x41
	.byte	0x46
	.uleb128 0xd
	.4byte	.LASF42
	.byte	0xc
	.2byte	0x114
	.4byte	0x2f0
	.byte	0x47
	.uleb128 0xd
	.4byte	.LASF43
	.byte	0xc
	.2byte	0x118
	.4byte	0x300
	.byte	0x48
	.uleb128 0xd
	.4byte	.LASF44
	.byte	0xc
	.2byte	0x121
	.4byte	0x81
	.byte	0x50
	.uleb128 0xd
	.4byte	.LASF45
	.byte	0xc
	.2byte	0x129
	.4byte	0x93
	.byte	0x58
	.uleb128 0xd
	.4byte	.LASF46
	.byte	0xc
	.2byte	0x12a
	.4byte	0x93
	.byte	0x5c
	.uleb128 0xd
	.4byte	.LASF47
	.byte	0xc
	.2byte	0x12b
	.4byte	0x93
	.byte	0x60
	.uleb128 0xd
	.4byte	.LASF48
	.byte	0xc
	.2byte	0x12c
	.4byte	0x93
	.byte	0x64
	.uleb128 0xd
	.4byte	.LASF49
	.byte	0xc
	.2byte	0x12e
	.4byte	0xa2
	.byte	0x68
	.uleb128 0xd
	.4byte	.LASF50
	.byte	0xc
	.2byte	0x12f
	.4byte	0x4f
	.byte	0x6c
	.uleb128 0xd
	.4byte	.LASF51
	.byte	0xc
	.2byte	0x131
	.4byte	0x306
	.byte	0x70
	.byte	0
	.uleb128 0xe
	.4byte	.LASF143
	.byte	0xc
	.byte	0x96
	.uleb128 0xc
	.4byte	.LASF53
	.byte	0xc
	.byte	0xc
	.byte	0x9c
	.4byte	0x2e4
	.uleb128 0x8
	.4byte	.LASF54
	.byte	0xc
	.byte	0x9d
	.4byte	0x2e4
	.byte	0
	.uleb128 0x8
	.4byte	.LASF55
	.byte	0xc
	.byte	0x9e
	.4byte	0x2ea
	.byte	0x4
	.uleb128 0x8
	.4byte	.LASF56
	.byte	0xc
	.byte	0xa2
	.4byte	0x4f
	.byte	0x8
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x2b3
	.uleb128 0x6
	.byte	0x4
	.4byte	0x12f
	.uleb128 0x9
	.4byte	0x9b
	.4byte	0x300
	.uleb128 0xa
	.4byte	0x8c
	.byte	0
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x2ac
	.uleb128 0x9
	.4byte	0x9b
	.4byte	0x316
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x27
	.byte	0
	.uleb128 0x4
	.4byte	.LASF57
	.byte	0xb
	.byte	0x5a
	.4byte	0x6f
	.uleb128 0x6
	.byte	0x4
	.4byte	0x4f
	.uleb128 0x2
	.byte	0x10
	.byte	0x4
	.4byte	.LASF58
	.uleb128 0x4
	.4byte	.LASF59
	.byte	0xd
	.byte	0x1a
	.4byte	0x33
	.uleb128 0x4
	.4byte	.LASF60
	.byte	0xd
	.byte	0x1e
	.4byte	0x5d
	.uleb128 0x2
	.byte	0x8
	.byte	0x4
	.4byte	.LASF61
	.uleb128 0x7
	.byte	0x8
	.byte	0xe
	.byte	0x72
	.4byte	0x36c
	.uleb128 0x8
	.4byte	.LASF62
	.byte	0xe
	.byte	0x74
	.4byte	0x32e
	.byte	0
	.uleb128 0x8
	.4byte	.LASF63
	.byte	0xe
	.byte	0x75
	.4byte	0x32e
	.byte	0x4
	.byte	0
	.uleb128 0xf
	.byte	0x8
	.byte	0xe
	.byte	0x6d
	.4byte	0x38b
	.uleb128 0x10
	.4byte	.LASF64
	.byte	0xe
	.byte	0x6e
	.4byte	0x339
	.uleb128 0x11
	.string	"ptr"
	.byte	0xe
	.byte	0x7a
	.4byte	0x34b
	.byte	0
	.uleb128 0xc
	.4byte	.LASF65
	.byte	0x20
	.byte	0xe
	.byte	0x3e
	.4byte	0x3c8
	.uleb128 0x8
	.4byte	.LASF66
	.byte	0xe
	.byte	0x4b
	.4byte	0x32e
	.byte	0
	.uleb128 0x8
	.4byte	.LASF67
	.byte	0xe
	.byte	0x5a
	.4byte	0x32e
	.byte	0x4
	.uleb128 0x8
	.4byte	.LASF68
	.byte	0xe
	.byte	0x7c
	.4byte	0x36c
	.byte	0x8
	.uleb128 0x8
	.4byte	.LASF69
	.byte	0xe
	.byte	0x90
	.4byte	0x32e
	.byte	0x10
	.byte	0
	.uleb128 0xc
	.4byte	.LASF70
	.byte	0x80
	.byte	0x1
	.byte	0x12
	.4byte	0x3df
	.uleb128 0x12
	.string	"v"
	.byte	0x1
	.byte	0x13
	.4byte	0x119
	.byte	0
	.byte	0
	.uleb128 0x13
	.4byte	.LASF71
	.4byte	0x20000
	.byte	0x1
	.byte	0x16
	.4byte	0x3f9
	.uleb128 0x12
	.string	"c"
	.byte	0x1
	.byte	0x17
	.4byte	0x3f9
	.byte	0
	.byte	0
	.uleb128 0x9
	.4byte	0x3c8
	.4byte	0x40a
	.uleb128 0x14
	.4byte	0x8c
	.2byte	0x3ff
	.byte	0
	.uleb128 0xc
	.4byte	.LASF72
	.byte	0x80
	.byte	0x1
	.byte	0x1a
	.4byte	0x423
	.uleb128 0x8
	.4byte	.LASF73
	.byte	0x1
	.byte	0x1b
	.4byte	0x119
	.byte	0
	.byte	0
	.uleb128 0x13
	.4byte	.LASF74
	.4byte	0x40080
	.byte	0x1
	.byte	0x1e
	.4byte	0x45b
	.uleb128 0x8
	.4byte	.LASF75
	.byte	0x1
	.byte	0x1f
	.4byte	0x3df
	.byte	0
	.uleb128 0x15
	.string	"c"
	.byte	0x1
	.byte	0x20
	.4byte	0x45b
	.4byte	0x20000
	.uleb128 0x16
	.4byte	.LASF76
	.byte	0x1
	.byte	0x21
	.4byte	0x4f
	.4byte	0x40000
	.byte	0
	.uleb128 0x9
	.4byte	0x40a
	.4byte	0x46c
	.uleb128 0x14
	.4byte	0x8c
	.2byte	0x3ff
	.byte	0
	.uleb128 0xc
	.4byte	.LASF77
	.byte	0x8
	.byte	0x1
	.byte	0x24
	.4byte	0x491
	.uleb128 0x8
	.4byte	.LASF78
	.byte	0x1
	.byte	0x25
	.4byte	0x119
	.byte	0
	.uleb128 0x8
	.4byte	.LASF79
	.byte	0x1
	.byte	0x26
	.4byte	0x491
	.byte	0x4
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x46c
	.uleb128 0xc
	.4byte	.LASF80
	.byte	0x80
	.byte	0x1
	.byte	0x29
	.4byte	0x4b0
	.uleb128 0x8
	.4byte	.LASF81
	.byte	0x1
	.byte	0x2a
	.4byte	0x491
	.byte	0
	.byte	0
	.uleb128 0x13
	.4byte	.LASF82
	.4byte	0x20000
	.byte	0x1
	.byte	0x2d
	.4byte	0x4ca
	.uleb128 0x12
	.string	"c"
	.byte	0x1
	.byte	0x2e
	.4byte	0x4ca
	.byte	0
	.byte	0
	.uleb128 0x9
	.4byte	0x497
	.4byte	0x4db
	.uleb128 0x14
	.4byte	0x8c
	.2byte	0x3ff
	.byte	0
	.uleb128 0x17
	.4byte	.LASF99
	.byte	0x3
	.byte	0xcf
	.4byte	0x4f
	.byte	0x3
	.4byte	0x524
	.uleb128 0x18
	.string	"v"
	.byte	0x3
	.byte	0xcf
	.4byte	0x524
	.uleb128 0x19
	.4byte	.LASF83
	.byte	0x3
	.byte	0xcf
	.4byte	0x119
	.uleb128 0x19
	.4byte	.LASF84
	.byte	0x3
	.byte	0xcf
	.4byte	0x119
	.uleb128 0x18
	.string	"cpu"
	.byte	0x3
	.byte	0xcf
	.4byte	0x4f
	.uleb128 0x1a
	.4byte	.LASF85
	.byte	0x3
	.byte	0xfc
	.uleb128 0x1a
	.4byte	.LASF86
	.byte	0x3
	.byte	0xff
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x119
	.uleb128 0x1b
	.4byte	.LASF144
	.byte	0x2
	.byte	0x8c
	.4byte	0x103
	.byte	0x3
	.uleb128 0x1c
	.4byte	.LASF94
	.byte	0x1
	.byte	0x48
	.byte	0x1
	.4byte	0x566
	.uleb128 0x19
	.4byte	.LASF75
	.byte	0x1
	.byte	0x48
	.4byte	0x566
	.uleb128 0x18
	.string	"cpu"
	.byte	0x1
	.byte	0x48
	.4byte	0x4f
	.uleb128 0x1d
	.4byte	.LASF96
	.4byte	0x57c
	.4byte	.LASF94
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x3df
	.uleb128 0x9
	.4byte	0xee
	.4byte	0x57c
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x12
	.byte	0
	.uleb128 0xb
	.4byte	0x56c
	.uleb128 0x1e
	.4byte	.LASF89
	.byte	0x4
	.byte	0x5f
	.4byte	0x4f
	.byte	0x3
	.4byte	0x5a9
	.uleb128 0x19
	.4byte	.LASF87
	.byte	0x4
	.byte	0x5f
	.4byte	0x5af
	.uleb128 0x19
	.4byte	.LASF88
	.byte	0x4
	.byte	0x5f
	.4byte	0x5b4
	.uleb128 0x1f
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x124
	.uleb128 0x20
	.4byte	0x5a9
	.uleb128 0x20
	.4byte	0xe8
	.uleb128 0x1e
	.4byte	.LASF90
	.byte	0x5
	.byte	0x4e
	.4byte	0x93
	.byte	0x3
	.4byte	0x5eb
	.uleb128 0x19
	.4byte	.LASF91
	.byte	0x5
	.byte	0x4e
	.4byte	0x93
	.uleb128 0x19
	.4byte	.LASF92
	.byte	0x5
	.byte	0x4e
	.4byte	0x4f
	.uleb128 0x19
	.4byte	.LASF93
	.byte	0x5
	.byte	0x4e
	.4byte	0xa2
	.byte	0
	.uleb128 0x1c
	.4byte	.LASF95
	.byte	0x1
	.byte	0x70
	.byte	0x1
	.4byte	0x63a
	.uleb128 0x21
	.4byte	.LASF97
	.byte	0x1
	.byte	0x72
	.4byte	0xf3
	.uleb128 0x22
	.string	"i"
	.byte	0x1
	.byte	0x73
	.4byte	0x4f
	.uleb128 0x22
	.string	"sum"
	.byte	0x1
	.byte	0x74
	.4byte	0x10e
	.uleb128 0x21
	.4byte	.LASF98
	.byte	0x1
	.byte	0x75
	.4byte	0x63a
	.uleb128 0x21
	.4byte	.LASF78
	.byte	0x1
	.byte	0x76
	.4byte	0x423
	.uleb128 0x1d
	.4byte	.LASF96
	.4byte	0x659
	.4byte	.LASF95
	.byte	0
	.uleb128 0x9
	.4byte	0xf8
	.4byte	0x649
	.uleb128 0x23
	.4byte	0x8c
	.byte	0
	.uleb128 0x9
	.4byte	0xee
	.4byte	0x659
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x14
	.byte	0
	.uleb128 0xb
	.4byte	0x649
	.uleb128 0x24
	.4byte	.LASF100
	.byte	0x3
	.2byte	0x10a
	.4byte	0x4f
	.byte	0x3
	.4byte	0x6ba
	.uleb128 0x25
	.string	"v"
	.byte	0x3
	.2byte	0x10a
	.4byte	0x524
	.uleb128 0x26
	.4byte	.LASF101
	.byte	0x3
	.2byte	0x10a
	.4byte	0x119
	.uleb128 0x26
	.4byte	.LASF102
	.byte	0x3
	.2byte	0x10b
	.4byte	0x316
	.uleb128 0x26
	.4byte	.LASF103
	.byte	0x3
	.2byte	0x10b
	.4byte	0x524
	.uleb128 0x25
	.string	"cpu"
	.byte	0x3
	.2byte	0x10b
	.4byte	0x4f
	.uleb128 0x27
	.4byte	.LASF85
	.byte	0x3
	.2byte	0x140
	.uleb128 0x27
	.4byte	.LASF86
	.byte	0x3
	.2byte	0x143
	.byte	0
	.uleb128 0x28
	.4byte	.LASF106
	.byte	0x1
	.byte	0xd1
	.4byte	0x93
	.byte	0x1
	.4byte	0x6f7
	.uleb128 0x18
	.string	"arg"
	.byte	0x1
	.byte	0xd1
	.4byte	0x93
	.uleb128 0x22
	.string	"i"
	.byte	0x1
	.byte	0xd3
	.4byte	0x4f
	.uleb128 0x21
	.4byte	.LASF104
	.byte	0x1
	.byte	0xd4
	.4byte	0x6f7
	.uleb128 0x29
	.uleb128 0x21
	.4byte	.LASF105
	.byte	0x1
	.byte	0xdd
	.4byte	0x491
	.byte	0
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x4b0
	.uleb128 0x28
	.4byte	.LASF107
	.byte	0x1
	.byte	0xc6
	.4byte	0x491
	.byte	0x1
	.4byte	0x72f
	.uleb128 0x19
	.4byte	.LASF104
	.byte	0x1
	.byte	0xc6
	.4byte	0x6f7
	.uleb128 0x18
	.string	"cpu"
	.byte	0x1
	.byte	0xc6
	.4byte	0x4f
	.uleb128 0x21
	.4byte	.LASF105
	.byte	0x1
	.byte	0xc8
	.4byte	0x491
	.byte	0
	.uleb128 0x1e
	.4byte	.LASF108
	.byte	0x4
	.byte	0x66
	.4byte	0x4f
	.byte	0x3
	.4byte	0x74c
	.uleb128 0x19
	.4byte	.LASF88
	.byte	0x4
	.byte	0x66
	.4byte	0x5b4
	.uleb128 0x1f
	.byte	0
	.uleb128 0x2a
	.4byte	0x536
	.4byte	.LFB125
	.4byte	.LFE125-.LFB125
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x7ae
	.uleb128 0x2b
	.4byte	0x54d
	.uleb128 0x6
	.byte	0xfa
	.4byte	0x54d
	.byte	0x9f
	.uleb128 0x2b
	.4byte	0x542
	.uleb128 0x6
	.byte	0xfa
	.4byte	0x542
	.byte	0x9f
	.uleb128 0x2c
	.4byte	0x558
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5645
	.uleb128 0x2d
	.4byte	.LVL1
	.4byte	0x135c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC1
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8
	.byte	0x4a
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0
	.byte	0
	.byte	0
	.uleb128 0x2f
	.4byte	.LASF109
	.byte	0x1
	.byte	0x32
	.4byte	0x4f
	.4byte	.LFB115
	.4byte	.LFE115-.LFB115
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x850
	.uleb128 0x30
	.4byte	.LASF75
	.byte	0x1
	.byte	0x32
	.4byte	0x566
	.4byte	.LLST0
	.uleb128 0x31
	.string	"cpu"
	.byte	0x1
	.byte	0x34
	.4byte	0x4f
	.uleb128 0x1
	.byte	0x5a
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0
	.uleb128 0x22
	.string	"ret"
	.byte	0x1
	.byte	0x37
	.4byte	0x4f
	.uleb128 0x33
	.4byte	0x52a
	.4byte	.LBB73
	.4byte	.Ldebug_ranges0+0x18
	.byte	0x1
	.byte	0x39
	.uleb128 0x34
	.4byte	0x4db
	.4byte	.LBB77
	.4byte	.Ldebug_ranges0+0x38
	.byte	0x1
	.byte	0x3a
	.uleb128 0x35
	.4byte	0x50a
	.4byte	.LLST1
	.uleb128 0x35
	.4byte	0x4ff
	.4byte	.LLST2
	.uleb128 0x35
	.4byte	0x4f4
	.4byte	.LLST3
	.uleb128 0x35
	.4byte	0x4eb
	.4byte	.LLST4
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x38
	.uleb128 0x36
	.4byte	0x515
	.4byte	.L5
	.uleb128 0x36
	.4byte	0x51c
	.4byte	.L4
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x2f
	.4byte	.LASF110
	.byte	0x1
	.byte	0x52
	.4byte	0x93
	.4byte	.LFB117
	.4byte	.LFE117-.LFB117
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x9ef
	.uleb128 0x37
	.string	"arg"
	.byte	0x1
	.byte	0x52
	.4byte	0x93
	.4byte	.LLST5
	.uleb128 0x38
	.4byte	.LASF78
	.byte	0x1
	.byte	0x54
	.4byte	0x9ef
	.4byte	.LLST6
	.uleb128 0x39
	.string	"i"
	.byte	0x1
	.byte	0x55
	.4byte	0x4f
	.4byte	.LLST7
	.uleb128 0x39
	.string	"cpu"
	.byte	0x1
	.byte	0x55
	.4byte	0x4f
	.4byte	.LLST8
	.uleb128 0x3a
	.4byte	0x536
	.4byte	.LBB86
	.4byte	.Ldebug_ranges0+0x58
	.byte	0x1
	.byte	0x5f
	.4byte	0x8e8
	.uleb128 0x3b
	.4byte	0x54d
	.uleb128 0x35
	.4byte	0x542
	.4byte	.LLST9
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x58
	.uleb128 0x2c
	.4byte	0x558
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5645
	.uleb128 0x2d
	.4byte	.LVL20
	.4byte	0x74c
	.uleb128 0x3c
	.4byte	0x542
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB92
	.4byte	.LBE92-.LBB92
	.byte	0x1
	.byte	0x58
	.4byte	0x932
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST10
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST11
	.uleb128 0x2d
	.4byte	.LVL24
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC2
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB94
	.4byte	.LBE94-.LBB94
	.byte	0x1
	.byte	0x62
	.4byte	0x97c
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST12
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST13
	.uleb128 0x2d
	.4byte	.LVL29
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC3
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL8
	.4byte	0x1372
	.uleb128 0x3f
	.4byte	.LVL11
	.4byte	0x7ae
	.4byte	0x999
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL17
	.4byte	0x137d
	.uleb128 0x3e
	.4byte	.LVL21
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL23
	.4byte	0x1393
	.4byte	0x9bf
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL25
	.4byte	0x139f
	.uleb128 0x3e
	.4byte	.LVL26
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL28
	.4byte	0x1393
	.4byte	0x9e5
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL30
	.4byte	0x139f
	.byte	0
	.uleb128 0x6
	.byte	0x4
	.4byte	0x423
	.uleb128 0x2a
	.4byte	0x536
	.4byte	.LFB116
	.4byte	.LFE116-.LFB116
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xa42
	.uleb128 0x35
	.4byte	0x542
	.4byte	.LLST14
	.uleb128 0x35
	.4byte	0x54d
	.4byte	.LLST15
	.uleb128 0x2c
	.4byte	0x558
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5645
	.uleb128 0x2d
	.4byte	.LVL33
	.4byte	0x74c
	.uleb128 0x3c
	.4byte	0x542
	.uleb128 0x3
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x3c
	.4byte	0x54d
	.uleb128 0x3
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0
	.byte	0
	.uleb128 0x2a
	.4byte	0x5eb
	.4byte	.LFB118
	.4byte	.LFE118-.LFB118
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xb71
	.uleb128 0x40
	.4byte	0x5f7
	.byte	0xc8
	.uleb128 0x41
	.4byte	0x602
	.4byte	.LLST16
	.uleb128 0x41
	.4byte	0x60b
	.4byte	.LLST17
	.uleb128 0x42
	.4byte	0x616
	.4byte	0x63a
	.4byte	.LLST18
	.uleb128 0x2c
	.4byte	0x621
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2c
	.4byte	0x62c
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5672
	.uleb128 0x3a
	.4byte	0x5b9
	.4byte	.LBB102
	.4byte	.Ldebug_ranges0+0x78
	.byte	0x1
	.byte	0x78
	.4byte	0xace
	.uleb128 0x3b
	.4byte	0x5df
	.uleb128 0x3b
	.4byte	0x5d4
	.uleb128 0x3b
	.4byte	0x5c9
	.uleb128 0x2d
	.4byte	.LVL35
	.4byte	0x13ab
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0xc
	.4byte	0x40080
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB109
	.4byte	.LBE109-.LBB109
	.4byte	0xb2f
	.uleb128 0x44
	.4byte	0x5f7
	.uleb128 0x44
	.4byte	0x602
	.uleb128 0x44
	.4byte	0x60b
	.uleb128 0x45
	.4byte	0x616
	.4byte	0xb71
	.uleb128 0x44
	.4byte	0x621
	.uleb128 0x2c
	.4byte	0x62c
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5672
	.uleb128 0x2d
	.4byte	.LVL48
	.4byte	0x135c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC4
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8
	.byte	0x86
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0+20
	.byte	0
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL38
	.4byte	0x13b4
	.4byte	0xb54
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 -4
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8a
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL40
	.4byte	0x13bf
	.4byte	0xb67
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL49
	.4byte	0x13ca
	.byte	0
	.uleb128 0x9
	.4byte	0xf8
	.4byte	0xb80
	.uleb128 0x23
	.4byte	0x8c
	.byte	0
	.uleb128 0x46
	.4byte	.LASF116
	.byte	0x1
	.byte	0x89
	.4byte	.LFB119
	.4byte	.LFE119-.LFB119
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xc68
	.uleb128 0x47
	.4byte	.LASF104
	.byte	0x1
	.byte	0x89
	.4byte	0x6f7
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x47
	.4byte	.LASF105
	.byte	0x1
	.byte	0x8a
	.4byte	0x491
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x47
	.4byte	.LASF111
	.byte	0x1
	.byte	0x8b
	.4byte	0x321
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x31
	.string	"cpu"
	.byte	0x1
	.byte	0x8d
	.4byte	0x4f
	.uleb128 0x1
	.byte	0x5a
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x98
	.uleb128 0x48
	.4byte	.LASF112
	.byte	0x1
	.byte	0x90
	.4byte	0x524
	.uleb128 0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.uleb128 0x48
	.4byte	.LASF113
	.byte	0x1
	.byte	0x90
	.4byte	0x119
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x48
	.4byte	.LASF83
	.byte	0x1
	.byte	0x90
	.4byte	0x119
	.uleb128 0x1
	.byte	0x57
	.uleb128 0x22
	.string	"ret"
	.byte	0x1
	.byte	0x91
	.4byte	0x4f
	.uleb128 0x33
	.4byte	0x52a
	.4byte	.LBB111
	.4byte	.Ldebug_ranges0+0xb0
	.byte	0x1
	.byte	0x93
	.uleb128 0x49
	.4byte	0x4db
	.4byte	.LBB115
	.4byte	.LBE115-.LBB115
	.byte	0x1
	.byte	0x99
	.uleb128 0x35
	.4byte	0x50a
	.4byte	.LLST19
	.uleb128 0x35
	.4byte	0x4ff
	.4byte	.LLST20
	.uleb128 0x35
	.4byte	0x4f4
	.4byte	.LLST21
	.uleb128 0x35
	.4byte	0x4eb
	.4byte	.LLST22
	.uleb128 0x4a
	.4byte	.LBB116
	.4byte	.LBE116-.LBB116
	.uleb128 0x36
	.4byte	0x515
	.4byte	.L45
	.uleb128 0x36
	.4byte	0x51c
	.4byte	.L44
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x2f
	.4byte	.LASF114
	.byte	0x1
	.byte	0xa7
	.4byte	0x491
	.4byte	.LFB120
	.4byte	.LFE120-.LFB120
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xd7a
	.uleb128 0x30
	.4byte	.LASF104
	.byte	0x1
	.byte	0xa7
	.4byte	0x6f7
	.4byte	.LLST23
	.uleb128 0x30
	.4byte	.LASF111
	.byte	0x1
	.byte	0xa8
	.4byte	0x321
	.4byte	.LLST24
	.uleb128 0x4b
	.4byte	.Ldebug_ranges0+0xc8
	.4byte	0xd70
	.uleb128 0x48
	.4byte	.LASF81
	.byte	0x1
	.byte	0xab
	.4byte	0x491
	.uleb128 0x3
	.byte	0x91
	.sleb128 -72
	.uleb128 0x38
	.4byte	.LASF112
	.byte	0x1
	.byte	0xac
	.4byte	0x524
	.4byte	.LLST25
	.uleb128 0x4c
	.4byte	.LASF101
	.byte	0x1
	.byte	0xac
	.4byte	0x119
	.byte	0
	.uleb128 0x38
	.4byte	.LASF103
	.byte	0x1
	.byte	0xac
	.4byte	0x524
	.4byte	.LLST26
	.uleb128 0x4c
	.4byte	.LASF115
	.byte	0x1
	.byte	0xad
	.4byte	0x316
	.byte	0x4
	.uleb128 0x22
	.string	"ret"
	.byte	0x1
	.byte	0xae
	.4byte	0x4f
	.uleb128 0x39
	.string	"cpu"
	.byte	0x1
	.byte	0xae
	.4byte	0x4f
	.4byte	.LLST27
	.uleb128 0x3a
	.4byte	0x65e
	.4byte	.LBB119
	.4byte	.Ldebug_ranges0+0xe8
	.byte	0x1
	.byte	0xb5
	.4byte	0xd60
	.uleb128 0x35
	.4byte	0x69d
	.4byte	.LLST28
	.uleb128 0x35
	.4byte	0x691
	.4byte	.LLST29
	.uleb128 0x35
	.4byte	0x685
	.4byte	.LLST30
	.uleb128 0x35
	.4byte	0x679
	.4byte	.LLST31
	.uleb128 0x35
	.4byte	0x66f
	.4byte	.LLST32
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0xe8
	.uleb128 0x36
	.4byte	0x6a9
	.4byte	.L54
	.uleb128 0x36
	.4byte	0x6b1
	.4byte	.L55
	.byte	0
	.byte	0
	.uleb128 0x4d
	.4byte	0x52a
	.4byte	.LBB124
	.4byte	.LBE124-.LBB124
	.byte	0x1
	.byte	0xb0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL64
	.4byte	0x13ca
	.byte	0
	.uleb128 0x2a
	.4byte	0x6ba
	.4byte	.LFB122
	.4byte	.LFE122-.LFB122
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xf1a
	.uleb128 0x35
	.4byte	0x6ca
	.4byte	.LLST33
	.uleb128 0x41
	.4byte	0x6d5
	.4byte	.LLST34
	.uleb128 0x41
	.4byte	0x6de
	.4byte	.LLST35
	.uleb128 0x43
	.4byte	.LBB139
	.4byte	.LBE139-.LBB139
	.4byte	0xdfc
	.uleb128 0x41
	.4byte	0x6ea
	.4byte	.LLST36
	.uleb128 0x3f
	.4byte	.LVL68
	.4byte	0xc68
	.4byte	0xdd7
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL70
	.4byte	0x13d3
	.uleb128 0x2d
	.4byte	.LVL71
	.4byte	0xb80
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8d
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB140
	.4byte	.LBE140-.LBB140
	.4byte	0xe97
	.uleb128 0x35
	.4byte	0x6ca
	.4byte	.LLST37
	.uleb128 0x4a
	.4byte	.LBB141
	.4byte	.LBE141-.LBB141
	.uleb128 0x44
	.4byte	0x6d5
	.uleb128 0x44
	.4byte	0x6de
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB142
	.4byte	.LBE142-.LBB142
	.byte	0x1
	.byte	0xd7
	.4byte	0xe6f
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST38
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST39
	.uleb128 0x2d
	.4byte	.LVL80
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC2
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL78
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL79
	.4byte	0x1393
	.4byte	0xe8c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL81
	.4byte	0x139f
	.byte	0
	.byte	0
	.uleb128 0x3d
	.4byte	0x581
	.4byte	.LBB144
	.4byte	.LBE144-.LBB144
	.byte	0x1
	.byte	0xe6
	.4byte	0xee1
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST40
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST41
	.uleb128 0x2d
	.4byte	.LVL86
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC3
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL66
	.4byte	0x1372
	.uleb128 0x3e
	.4byte	.LVL73
	.4byte	0x137d
	.uleb128 0x3e
	.4byte	.LVL83
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL85
	.4byte	0x1393
	.4byte	0xf10
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL87
	.4byte	0x139f
	.byte	0
	.uleb128 0x2a
	.4byte	0x6fd
	.4byte	.LFB121
	.4byte	.LFE121-.LFB121
	.uleb128 0x1
	.byte	0x9c
	.4byte	0xf47
	.uleb128 0x35
	.4byte	0x70d
	.4byte	.LLST42
	.uleb128 0x35
	.4byte	0x718
	.4byte	.LLST43
	.uleb128 0x2c
	.4byte	0x723
	.uleb128 0x1
	.byte	0x59
	.byte	0
	.uleb128 0x46
	.4byte	.LASF117
	.byte	0x1
	.byte	0xef
	.4byte	.LFB123
	.4byte	.LFE123-.LFB123
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x1195
	.uleb128 0x39
	.string	"i"
	.byte	0x1
	.byte	0xf1
	.4byte	0x4f
	.4byte	.LLST44
	.uleb128 0x39
	.string	"j"
	.byte	0x1
	.byte	0xf1
	.4byte	0x4f
	.4byte	.LLST45
	.uleb128 0x39
	.string	"sum"
	.byte	0x1
	.byte	0xf2
	.4byte	0x10e
	.4byte	.LLST46
	.uleb128 0x38
	.4byte	.LASF118
	.byte	0x1
	.byte	0xf2
	.4byte	0x10e
	.4byte	.LLST47
	.uleb128 0x48
	.4byte	.LASF104
	.byte	0x1
	.byte	0xf3
	.4byte	0x4b0
	.uleb128 0x2
	.byte	0x87
	.sleb128 0
	.uleb128 0x48
	.4byte	.LASF98
	.byte	0x1
	.byte	0xf4
	.4byte	0x1195
	.uleb128 0x3
	.byte	0x91
	.sleb128 -852
	.uleb128 0x48
	.4byte	.LASF119
	.byte	0x1
	.byte	0xf5
	.4byte	0xdd
	.uleb128 0x3
	.byte	0x91
	.sleb128 -980
	.uleb128 0x4e
	.4byte	.LASF96
	.4byte	0x11b5
	.uleb128 0x5
	.byte	0x3
	.4byte	__PRETTY_FUNCTION__.5725
	.uleb128 0x3a
	.4byte	0x5b9
	.4byte	.LBB146
	.4byte	.Ldebug_ranges0+0x108
	.byte	0x1
	.byte	0xf7
	.4byte	0x101b
	.uleb128 0x35
	.4byte	0x5df
	.4byte	.LLST48
	.uleb128 0x35
	.4byte	0x5d4
	.4byte	.LLST49
	.uleb128 0x35
	.4byte	0x5c9
	.4byte	.LLST50
	.uleb128 0x2d
	.4byte	.LVL94
	.4byte	0x13ab
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x87
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x88
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0x40
	.byte	0x3d
	.byte	0x24
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB150
	.4byte	.LBE150-.LBB150
	.4byte	0x1038
	.uleb128 0x38
	.4byte	.LASF120
	.byte	0x1
	.byte	0xfc
	.4byte	0xa2
	.4byte	.LLST51
	.byte	0
	.uleb128 0x4b
	.4byte	.Ldebug_ranges0+0x120
	.4byte	0x1090
	.uleb128 0x38
	.4byte	.LASF105
	.byte	0x1
	.byte	0xff
	.4byte	0x491
	.4byte	.LLST52
	.uleb128 0x3f
	.4byte	.LVL99
	.4byte	0x13de
	.4byte	0x1063
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x1
	.byte	0x38
	.byte	0
	.uleb128 0x2d
	.4byte	.LVL126
	.4byte	0x135c
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC5
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0xa
	.2byte	0x104
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0+44
	.byte	0
	.byte	0
	.uleb128 0x43
	.4byte	.LBB153
	.4byte	.LBE153-.LBB153
	.4byte	0x1103
	.uleb128 0x4f
	.4byte	.LASF105
	.byte	0x1
	.2byte	0x113
	.4byte	0x491
	.uleb128 0x43
	.4byte	.LBB154
	.4byte	.LBE154-.LBB154
	.4byte	0x10c7
	.uleb128 0x50
	.4byte	.LASF120
	.byte	0x1
	.2byte	0x115
	.4byte	0xa2
	.4byte	.LLST53
	.byte	0
	.uleb128 0x51
	.4byte	0x6fd
	.4byte	.LBB155
	.4byte	.Ldebug_ranges0+0x140
	.byte	0x1
	.2byte	0x118
	.4byte	0x10f9
	.uleb128 0x3b
	.4byte	0x718
	.uleb128 0x35
	.4byte	0x70d
	.4byte	.LLST54
	.uleb128 0x32
	.4byte	.Ldebug_ranges0+0x140
	.uleb128 0x41
	.4byte	0x723
	.4byte	.LLST55
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL116
	.4byte	0x13ea
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL95
	.4byte	0x13f6
	.4byte	0x1123
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x88
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x2
	.byte	0x8
	.byte	0x80
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8f
	.sleb128 28
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL105
	.4byte	0x13b4
	.4byte	0x1148
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 -4
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x2
	.byte	0x8c
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x87
	.sleb128 0
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL106
	.4byte	0x13bf
	.4byte	0x115b
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x30
	.byte	0
	.uleb128 0x3f
	.4byte	.LVL127
	.4byte	0x135c
	.4byte	0x118b
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC6
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x3
	.byte	0xa
	.2byte	0x123
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x5
	.byte	0x3
	.4byte	.LANCHOR0+44
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL128
	.4byte	0x13ca
	.byte	0
	.uleb128 0x9
	.4byte	0xf8
	.4byte	0x11a5
	.uleb128 0xa
	.4byte	0x8c
	.byte	0xc7
	.byte	0
	.uleb128 0x9
	.4byte	0xee
	.4byte	0x11b5
	.uleb128 0xa
	.4byte	0x8c
	.byte	0x10
	.byte	0
	.uleb128 0xb
	.4byte	0x11a5
	.uleb128 0x52
	.4byte	.LASF121
	.byte	0x1
	.2byte	0x126
	.4byte	0x4f
	.4byte	.LFB124
	.4byte	.LFE124-.LFB124
	.uleb128 0x1
	.byte	0x9c
	.4byte	0x1330
	.uleb128 0x27
	.4byte	.LASF122
	.byte	0x1
	.2byte	0x138
	.uleb128 0x53
	.4byte	0x72f
	.4byte	.LBB162
	.4byte	.LBE162-.LBB162
	.byte	0x1
	.2byte	0x12d
	.4byte	0x120d
	.uleb128 0x35
	.4byte	0x73f
	.4byte	.LLST56
	.uleb128 0x2d
	.4byte	.LVL131
	.4byte	0x140f
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC7
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0x72f
	.4byte	.LBB164
	.4byte	.LBE164-.LBB164
	.byte	0x1
	.2byte	0x12f
	.4byte	0x123e
	.uleb128 0x35
	.4byte	0x73f
	.4byte	.LLST57
	.uleb128 0x2d
	.4byte	.LVL133
	.4byte	0x140f
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC8
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0x581
	.4byte	.LBB166
	.4byte	.LBE166-.LBB166
	.byte	0x1
	.2byte	0x129
	.4byte	0x1289
	.uleb128 0x35
	.4byte	0x59c
	.4byte	.LLST58
	.uleb128 0x35
	.4byte	0x591
	.4byte	.LLST59
	.uleb128 0x2d
	.4byte	.LVL138
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC2
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x53
	.4byte	0x581
	.4byte	.LBB168
	.4byte	.LBE168-.LBB168
	.byte	0x1
	.2byte	0x132
	.4byte	0x12d5
	.uleb128 0x2b
	.4byte	0x59c
	.uleb128 0x6
	.byte	0x3
	.4byte	.LC3
	.byte	0x9f
	.uleb128 0x2b
	.4byte	0x591
	.uleb128 0x1
	.byte	0x6e
	.uleb128 0x2d
	.4byte	.LVL142
	.4byte	0x1367
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8e
	.sleb128 0
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x54
	.uleb128 0x1
	.byte	0x31
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x55
	.uleb128 0x5
	.byte	0x3
	.4byte	.LC3
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x56
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL129
	.4byte	0x1372
	.uleb128 0x3e
	.4byte	.LVL132
	.4byte	0x5eb
	.uleb128 0x3e
	.4byte	.LVL134
	.4byte	0xf47
	.uleb128 0x3e
	.4byte	.LVL135
	.4byte	0x137d
	.uleb128 0x3e
	.4byte	.LVL136
	.4byte	0x1388
	.uleb128 0x3f
	.4byte	.LVL137
	.4byte	0x1393
	.4byte	0x1316
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.uleb128 0x3e
	.4byte	.LVL140
	.4byte	0x1388
	.uleb128 0x2d
	.4byte	.LVL141
	.4byte	0x1393
	.uleb128 0x2e
	.uleb128 0x1
	.byte	0x53
	.uleb128 0x2
	.byte	0x8f
	.sleb128 0
	.byte	0
	.byte	0
	.uleb128 0x54
	.4byte	.LASF123
	.byte	0xb
	.byte	0xa8
	.4byte	0x2ea
	.uleb128 0x54
	.4byte	.LASF124
	.byte	0xb
	.byte	0xa9
	.4byte	0x2ea
	.uleb128 0x54
	.4byte	.LASF125
	.byte	0xb
	.byte	0xaa
	.4byte	0x2ea
	.uleb128 0x54
	.4byte	.LASF126
	.byte	0x2
	.byte	0x33
	.4byte	0x38b
	.uleb128 0x55
	.4byte	.LASF127
	.4byte	.LASF127
	.byte	0xf
	.byte	0x45
	.uleb128 0x55
	.4byte	.LASF128
	.4byte	.LASF128
	.byte	0x4
	.byte	0x55
	.uleb128 0x55
	.4byte	.LASF129
	.4byte	.LASF129
	.byte	0x2
	.byte	0x6a
	.uleb128 0x55
	.4byte	.LASF130
	.4byte	.LASF130
	.byte	0x2
	.byte	0x6f
	.uleb128 0x55
	.4byte	.LASF131
	.4byte	.LASF131
	.byte	0x10
	.byte	0x32
	.uleb128 0x56
	.4byte	.LASF132
	.4byte	.LASF132
	.byte	0x11
	.2byte	0x198
	.uleb128 0x56
	.4byte	.LASF85
	.4byte	.LASF85
	.byte	0x12
	.2byte	0x203
	.uleb128 0x57
	.4byte	.LASF90
	.4byte	.LASF90
	.uleb128 0x55
	.4byte	.LASF133
	.4byte	.LASF133
	.byte	0x13
	.byte	0xe9
	.uleb128 0x55
	.4byte	.LASF134
	.4byte	.LASF134
	.byte	0x13
	.byte	0xfa
	.uleb128 0x57
	.4byte	.LASF135
	.4byte	.LASF135
	.uleb128 0x55
	.4byte	.LASF136
	.4byte	.LASF136
	.byte	0x14
	.byte	0x41
	.uleb128 0x56
	.4byte	.LASF137
	.4byte	.LASF137
	.byte	0x12
	.2byte	0x1d2
	.uleb128 0x56
	.4byte	.LASF138
	.4byte	.LASF138
	.byte	0x12
	.2byte	0x1e3
	.uleb128 0x55
	.4byte	.LASF139
	.4byte	.LASF139
	.byte	0x14
	.byte	0x7a
	.uleb128 0x58
	.uleb128 0xc
	.byte	0x9e
	.uleb128 0xa
	.byte	0x73
	.byte	0x70
	.byte	0x69
	.byte	0x6e
	.byte	0x6c
	.byte	0x6f
	.byte	0x63
	.byte	0x6b
	.byte	0xa
	.byte	0
	.uleb128 0x59
	.4byte	.LASF145
	.4byte	.LASF146
	.byte	0x15
	.byte	0
	.4byte	.LASF145
	.uleb128 0x58
	.uleb128 0xf
	.byte	0x9e
	.uleb128 0xd
	.byte	0x70
	.byte	0x65
	.byte	0x72
	.byte	0x63
	.byte	0x70
	.byte	0x75
	.byte	0x5f
	.byte	0x6c
	.byte	0x69
	.byte	0x73
	.byte	0x74
	.byte	0xa
	.byte	0
	.byte	0
	.section	.debug_abbrev,"",@progbits
.Ldebug_abbrev0:
	.uleb128 0x1
	.uleb128 0x11
	.byte	0x1
	.uleb128 0x25
	.uleb128 0xe
	.uleb128 0x13
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x1b
	.uleb128 0xe
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x10
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x2
	.uleb128 0x24
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.byte	0
	.byte	0
	.uleb128 0x3
	.uleb128 0x24
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0x8
	.byte	0
	.byte	0
	.uleb128 0x4
	.uleb128 0x16
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x5
	.uleb128 0xf
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x6
	.uleb128 0xf
	.byte	0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x7
	.uleb128 0x13
	.byte	0x1
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x8
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x9
	.uleb128 0x1
	.byte	0x1
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xa
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xb
	.uleb128 0x26
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xc
	.uleb128 0x13
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0xd
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xe
	.uleb128 0x16
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0xf
	.uleb128 0x17
	.byte	0x1
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x10
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x11
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x12
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x13
	.uleb128 0x13
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0xb
	.uleb128 0x6
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x14
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0x5
	.byte	0
	.byte	0
	.uleb128 0x15
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x16
	.uleb128 0xd
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x38
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x17
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x18
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x19
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x1a
	.uleb128 0xa
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x1b
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x1c
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x1d
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x1c
	.uleb128 0xe
	.byte	0
	.byte	0
	.uleb128 0x1e
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x1f
	.uleb128 0x18
	.byte	0
	.byte	0
	.byte	0
	.uleb128 0x20
	.uleb128 0x37
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x21
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x22
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x23
	.uleb128 0x21
	.byte	0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x24
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x25
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x26
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x27
	.uleb128 0xa
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.byte	0
	.byte	0
	.uleb128 0x28
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x20
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x29
	.uleb128 0xb
	.byte	0x1
	.byte	0
	.byte	0
	.uleb128 0x2a
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x2b
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2c
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2d
	.uleb128 0x4109
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x2e
	.uleb128 0x410a
	.byte	0
	.uleb128 0x2
	.uleb128 0x18
	.uleb128 0x2111
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x2f
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x30
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x31
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x32
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x55
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x33
	.uleb128 0x1d
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x34
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x35
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x36
	.uleb128 0xa
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.byte	0
	.byte	0
	.uleb128 0x37
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x38
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x39
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x3a
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3b
	.uleb128 0x5
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3c
	.uleb128 0x410a
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2111
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x3d
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3e
	.uleb128 0x4109
	.byte	0
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x3f
	.uleb128 0x4109
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x40
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x1c
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x41
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x42
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x43
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x44
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x45
	.uleb128 0x34
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x46
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x47
	.uleb128 0x5
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x48
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x49
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x4a
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.byte	0
	.byte	0
	.uleb128 0x4b
	.uleb128 0xb
	.byte	0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x4c
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1c
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x4d
	.uleb128 0x1d
	.byte	0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x4e
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x34
	.uleb128 0x19
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x4f
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x50
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0x17
	.byte	0
	.byte	0
	.uleb128 0x51
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x52
	.uleb128 0x1
	.uleb128 0x55
	.uleb128 0x17
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0x5
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x52
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.uleb128 0x27
	.uleb128 0x19
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x40
	.uleb128 0x18
	.uleb128 0x2117
	.uleb128 0x19
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x53
	.uleb128 0x1d
	.byte	0x1
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x6
	.uleb128 0x58
	.uleb128 0xb
	.uleb128 0x59
	.uleb128 0x5
	.uleb128 0x1
	.uleb128 0x13
	.byte	0
	.byte	0
	.uleb128 0x54
	.uleb128 0x34
	.byte	0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.byte	0
	.byte	0
	.uleb128 0x55
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.byte	0
	.byte	0
	.uleb128 0x56
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0x5
	.byte	0
	.byte	0
	.uleb128 0x57
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.byte	0
	.byte	0
	.uleb128 0x58
	.uleb128 0x36
	.byte	0
	.uleb128 0x2
	.uleb128 0x18
	.byte	0
	.byte	0
	.uleb128 0x59
	.uleb128 0x2e
	.byte	0
	.uleb128 0x3f
	.uleb128 0x19
	.uleb128 0x3c
	.uleb128 0x19
	.uleb128 0x6e
	.uleb128 0xe
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x6e
	.uleb128 0xe
	.byte	0
	.byte	0
	.byte	0
	.section	.debug_loc,"",@progbits
.Ldebug_loc0:
.LLST0:
	.4byte	.LVL2
	.4byte	.LVL5
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL5
	.4byte	.LFE115
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST1:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST2:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x2
	.byte	0x31
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST3:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST4:
	.4byte	.LVL3
	.4byte	.LVL4
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST5:
	.4byte	.LVL6
	.4byte	.LVL8-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL8-1
	.4byte	.LVL18
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL18
	.4byte	.LVL19
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL19
	.4byte	.LVL22
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL22
	.4byte	.LVL25
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL25
	.4byte	.LVL27
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL27
	.4byte	.LFE117
	.2byte	0x5
	.byte	0x8d
	.sleb128 -262144
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST6:
	.4byte	.LVL7
	.4byte	.LVL8-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL8-1
	.4byte	.LVL18
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL18
	.4byte	.LVL19
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL19
	.4byte	.LVL22
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL22
	.4byte	.LVL25
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL25
	.4byte	.LVL27
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL27
	.4byte	.LFE117
	.2byte	0x5
	.byte	0x8d
	.sleb128 -262144
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST7:
	.4byte	.LVL9
	.4byte	.LVL10
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	.LVL10
	.4byte	.LVL16
	.2byte	0x1
	.byte	0x6e
	.4byte	.LVL19
	.4byte	.LVL20
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST8:
	.4byte	.LVL11
	.4byte	.LVL12
	.2byte	0x1
	.byte	0x53
	.4byte	0
	.4byte	0
.LLST9:
	.4byte	.LVL13
	.4byte	.LVL14
	.2byte	0x1
	.byte	0x6f
	.4byte	.LVL19
	.4byte	.LVL20
	.2byte	0x1
	.byte	0x6f
	.4byte	0
	.4byte	0
.LLST10:
	.4byte	.LVL23
	.4byte	.LVL24
	.2byte	0x6
	.byte	0x3
	.4byte	.LC2
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST11:
	.4byte	.LVL23
	.4byte	.LVL24
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST12:
	.4byte	.LVL28
	.4byte	.LVL29
	.2byte	0x6
	.byte	0x3
	.4byte	.LC3
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST13:
	.4byte	.LVL28
	.4byte	.LVL29
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST14:
	.4byte	.LVL31
	.4byte	.LVL33-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL33-1
	.4byte	.LFE116
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST15:
	.4byte	.LVL31
	.4byte	.LVL32
	.2byte	0x1
	.byte	0x54
	.4byte	.LVL32
	.4byte	.LFE116
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST16:
	.4byte	.LVL36
	.4byte	.LVL37
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST17:
	.4byte	.LVL41
	.4byte	.LVL42
	.2byte	0x6
	.byte	0x57
	.byte	0x93
	.uleb128 0x4
	.byte	0x5a
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL43
	.4byte	.LVL44
	.2byte	0x6
	.byte	0x57
	.byte	0x93
	.uleb128 0x4
	.byte	0x5a
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL47
	.4byte	.LVL48-1
	.2byte	0x6
	.byte	0x57
	.byte	0x93
	.uleb128 0x4
	.byte	0x5a
	.byte	0x93
	.uleb128 0x4
	.4byte	0
	.4byte	0
.LLST18:
	.4byte	.LVL36
	.4byte	.LVL39
	.2byte	0x2
	.byte	0x8c
	.sleb128 0
	.4byte	.LVL39
	.4byte	.LVL45
	.2byte	0x3
	.byte	0x8c
	.sleb128 -796
	.4byte	.LVL45
	.4byte	.LVL46
	.2byte	0x2
	.byte	0x71
	.sleb128 8
	.4byte	.LVL47
	.4byte	.LFE118
	.2byte	0x3
	.byte	0x8c
	.sleb128 -796
	.4byte	0
	.4byte	0
.LLST19:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST20:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x1
	.byte	0x54
	.4byte	0
	.4byte	0
.LLST21:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x1
	.byte	0x57
	.4byte	0
	.4byte	0
.LLST22:
	.4byte	.LVL53
	.4byte	.LVL54
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST23:
	.4byte	.LVL55
	.4byte	.LVL58
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL58
	.4byte	.LVL59
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL60
	.4byte	.LFE120
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST24:
	.4byte	.LVL55
	.4byte	.LVL64-1
	.2byte	0x1
	.byte	0x54
	.4byte	.LVL64-1
	.4byte	.LFE120
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST25:
	.4byte	.LVL56
	.4byte	.LVL58
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL58
	.4byte	.LVL59
	.2byte	0x9
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL60
	.4byte	.LVL61
	.2byte	0x9
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST26:
	.4byte	.LVL56
	.4byte	.LVL62
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL62
	.4byte	.LVL63
	.2byte	0x4
	.byte	0x71
	.sleb128 -72
	.byte	0x9f
	.4byte	.LVL63
	.4byte	.LVL64-1
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL64-1
	.4byte	.LFE120
	.2byte	0x4
	.byte	0x91
	.sleb128 -72
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST27:
	.4byte	.LVL56
	.4byte	.LVL61
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST28:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x1
	.byte	0x5a
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x1
	.byte	0x5a
	.4byte	0
	.4byte	0
.LLST29:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x7
	.byte	0x71
	.sleb128 0
	.byte	0x6
	.byte	0x8
	.byte	0x48
	.byte	0x1c
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST30:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x2
	.byte	0x34
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x2
	.byte	0x34
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST31:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST32:
	.4byte	.LVL56
	.4byte	.LVL57
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	.LVL59
	.4byte	.LVL60
	.2byte	0x8
	.byte	0x7a
	.sleb128 0
	.byte	0x37
	.byte	0x24
	.byte	0x73
	.sleb128 0
	.byte	0x22
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST33:
	.4byte	.LVL65
	.4byte	.LVL66-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL66-1
	.4byte	.LVL74
	.2byte	0x1
	.byte	0x6d
	.4byte	.LVL74
	.4byte	.LVL77
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL77
	.4byte	.LFE122
	.2byte	0x1
	.byte	0x6d
	.4byte	0
	.4byte	0
.LLST34:
	.4byte	.LVL67
	.4byte	.LVL71
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL71
	.4byte	.LVL72
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a1
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL72
	.4byte	.LVL76
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	.LVL81
	.4byte	.LVL84
	.2byte	0x9
	.byte	0xc
	.4byte	0x186a0
	.byte	0x8f
	.sleb128 0
	.byte	0x1c
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST35:
	.4byte	.LVL65
	.4byte	.LVL66-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL66-1
	.4byte	.LVL74
	.2byte	0x1
	.byte	0x6d
	.4byte	.LVL74
	.4byte	.LVL77
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	.LVL77
	.4byte	.LFE122
	.2byte	0x1
	.byte	0x6d
	.4byte	0
	.4byte	0
.LLST36:
	.4byte	.LVL69
	.4byte	.LVL70-1
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL70-1
	.4byte	.LVL75
	.2byte	0x1
	.byte	0x6e
	.4byte	.LVL81
	.4byte	.LVL82
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST37:
	.4byte	.LVL77
	.4byte	.LVL81
	.2byte	0x1
	.byte	0x6d
	.4byte	0
	.4byte	0
.LLST38:
	.4byte	.LVL79
	.4byte	.LVL80
	.2byte	0x6
	.byte	0x3
	.4byte	.LC2
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST39:
	.4byte	.LVL79
	.4byte	.LVL80
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST40:
	.4byte	.LVL85
	.4byte	.LVL86
	.2byte	0x6
	.byte	0x3
	.4byte	.LC3
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST41:
	.4byte	.LVL85
	.4byte	.LVL86
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST42:
	.4byte	.LVL88
	.4byte	.LVL91
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL91
	.4byte	.LFE121
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x53
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST43:
	.4byte	.LVL88
	.4byte	.LVL89
	.2byte	0x1
	.byte	0x54
	.4byte	.LVL89
	.4byte	.LFE121
	.2byte	0x4
	.byte	0xf3
	.uleb128 0x1
	.byte	0x54
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST44:
	.4byte	.LVL95
	.4byte	.LVL96
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	.LVL96
	.4byte	.LVL102
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL102
	.4byte	.LVL103
	.2byte	0x3
	.byte	0x88
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL103
	.4byte	.LVL104
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL107
	.4byte	.LVL108
	.2byte	0x3
	.byte	0x8b
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL108
	.4byte	.LVL118
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL118
	.4byte	.LVL119
	.2byte	0x3
	.byte	0x8b
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL119
	.4byte	.LVL123
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL126
	.4byte	.LFE123
	.2byte	0x1
	.byte	0x6b
	.4byte	0
	.4byte	0
.LLST45:
	.4byte	.LVL97
	.4byte	.LVL100
	.2byte	0x1
	.byte	0x6e
	.4byte	.LVL100
	.4byte	.LVL101
	.2byte	0x3
	.byte	0x8e
	.sleb128 1
	.byte	0x9f
	.4byte	.LVL101
	.4byte	.LVL102
	.2byte	0x6
	.byte	0x73
	.sleb128 0
	.byte	0x6
	.byte	0x23
	.uleb128 0x1
	.byte	0x9f
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
.LLST46:
	.4byte	.LVL92
	.4byte	.LVL107
	.2byte	0xa
	.byte	0x9e
	.uleb128 0x8
	.4byte	0
	.4byte	0

	.4byte	.LVL107
	.4byte	.LVL110
	.2byte	0x6
	.byte	0x6c
	.byte	0x93
	.uleb128 0x4
	.byte	0x6e
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL112
	.4byte	.LVL114
	.2byte	0x6
	.byte	0x6c
	.byte	0x93
	.uleb128 0x4
	.byte	0x6e
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL115
	.4byte	.LVL120
	.2byte	0x6
	.byte	0x6c
	.byte	0x93
	.uleb128 0x4
	.byte	0x6e
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0xa
	.byte	0x9e
	.uleb128 0x8
	.4byte	0
	.4byte	0

	.4byte	0
	.4byte	0
.LLST47:
	.4byte	.LVL92
	.4byte	.LVL96
	.2byte	0xa
	.byte	0x9e
	.uleb128 0x8
	.4byte	0
	.4byte	0

	.4byte	.LVL96
	.4byte	.LVL98
	.2byte	0x6
	.byte	0x6a
	.byte	0x93
	.uleb128 0x4
	.byte	0x6d
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL102
	.4byte	.LVL122
	.2byte	0x6
	.byte	0x6a
	.byte	0x93
	.uleb128 0x4
	.byte	0x6d
	.byte	0x93
	.uleb128 0x4
	.4byte	.LVL126
	.4byte	.LFE123
	.2byte	0x6
	.byte	0x6a
	.byte	0x93
	.uleb128 0x4
	.byte	0x6d
	.byte	0x93
	.uleb128 0x4
	.4byte	0
	.4byte	0
.LLST48:
	.4byte	.LVL92
	.4byte	.LVL94
	.2byte	0x4
	.byte	0x40
	.byte	0x3d
	.byte	0x24
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST49:
	.4byte	.LVL92
	.4byte	.LVL94
	.2byte	0x2
	.byte	0x30
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST50:
	.4byte	.LVL92
	.4byte	.LVL93
	.2byte	0x7
	.byte	0x87
	.sleb128 0
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	.LVL93
	.4byte	.LVL94
	.2byte	0x8
	.byte	0x71
	.sleb128 135
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST51:
	.4byte	.LVL96
	.4byte	.LVL103
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL103
	.4byte	.LVL121
	.2byte	0x3
	.byte	0x88
	.sleb128 -1
	.byte	0x9f
	.4byte	.LVL124
	.4byte	.LVL126
	.2byte	0x1
	.byte	0x68
	.4byte	.LVL126
	.4byte	.LFE123
	.2byte	0x3
	.byte	0x88
	.sleb128 -1
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST52:
	.4byte	.LVL99
	.4byte	.LVL102
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL124
	.4byte	.LVL125
	.2byte	0x1
	.byte	0x53
	.4byte	0
	.4byte	0
.LLST53:
	.4byte	.LVL107
	.4byte	.LVL108
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL108
	.4byte	.LVL109
	.2byte	0x3
	.byte	0x8b
	.sleb128 -1
	.byte	0x9f
	.4byte	.LVL109
	.4byte	.LVL119
	.2byte	0x1
	.byte	0x6b
	.4byte	.LVL119
	.4byte	.LVL120
	.2byte	0x3
	.byte	0x8b
	.sleb128 -1
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST54:
	.4byte	.LVL110
	.4byte	.LVL113
	.2byte	0x8
	.byte	0x71
	.sleb128 135
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	.LVL116
	.4byte	.LVL120
	.2byte	0x8
	.byte	0x71
	.sleb128 135
	.byte	0x37
	.byte	0x25
	.byte	0x37
	.byte	0x24
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST55:
	.4byte	.LVL111
	.4byte	.LVL113
	.2byte	0x1
	.byte	0x53
	.4byte	.LVL117
	.4byte	.LVL120
	.2byte	0x1
	.byte	0x53
	.4byte	0
	.4byte	0
.LLST56:
	.4byte	.LVL130
	.4byte	.LVL131
	.2byte	0x6
	.byte	0xf2
	.4byte	.Ldebug_info0+5121
	.sleb128 0
	.4byte	0
	.4byte	0
.LLST57:
	.4byte	.LVL132
	.4byte	.LVL133
	.2byte	0x6
	.byte	0xf2
	.4byte	.Ldebug_info0+5150
	.sleb128 0
	.4byte	0
	.4byte	0
.LLST58:
	.4byte	.LVL137
	.4byte	.LVL139
	.2byte	0x6
	.byte	0x3
	.4byte	.LC2
	.byte	0x9f
	.4byte	0
	.4byte	0
.LLST59:
	.4byte	.LVL137
	.4byte	.LVL139
	.2byte	0x1
	.byte	0x6e
	.4byte	0
	.4byte	0
	.section	.debug_aranges,"",@progbits
	.4byte	0x24
	.2byte	0x2
	.4byte	.Ldebug_info0
	.byte	0x4
	.byte	0
	.2byte	0
	.2byte	0
	.4byte	.Ltext0
	.4byte	.Letext0-.Ltext0
	.4byte	.LFB124
	.4byte	.LFE124-.LFB124
	.4byte	0
	.4byte	0
	.section	.debug_ranges,"",@progbits
.Ldebug_ranges0:
	.4byte	.LBB72
	.4byte	.LBE72
	.4byte	.LBB85
	.4byte	.LBE85
	.4byte	0
	.4byte	0
	.4byte	.LBB73
	.4byte	.LBE73
	.4byte	.LBB81
	.4byte	.LBE81
	.4byte	.LBB83
	.4byte	.LBE83
	.4byte	0
	.4byte	0
	.4byte	.LBB77
	.4byte	.LBE77
	.4byte	.LBB82
	.4byte	.LBE82
	.4byte	.LBB84
	.4byte	.LBE84
	.4byte	0
	.4byte	0
	.4byte	.LBB86
	.4byte	.LBE86
	.4byte	.LBB90
	.4byte	.LBE90
	.4byte	.LBB91
	.4byte	.LBE91
	.4byte	0
	.4byte	0
	.4byte	.LBB102
	.4byte	.LBE102
	.4byte	.LBB106
	.4byte	.LBE106
	.4byte	.LBB107
	.4byte	.LBE107
	.4byte	0
	.4byte	0
	.4byte	.LBB110
	.4byte	.LBE110
	.4byte	.LBB117
	.4byte	.LBE117
	.4byte	0
	.4byte	0
	.4byte	.LBB111
	.4byte	.LBE111
	.4byte	.LBB114
	.4byte	.LBE114
	.4byte	0
	.4byte	0
	.4byte	.LBB118
	.4byte	.LBE118
	.4byte	.LBB127
	.4byte	.LBE127
	.4byte	.LBB128
	.4byte	.LBE128
	.4byte	0
	.4byte	0
	.4byte	.LBB119
	.4byte	.LBE119
	.4byte	.LBB123
	.4byte	.LBE123
	.4byte	.LBB126
	.4byte	.LBE126
	.4byte	0
	.4byte	0
	.4byte	.LBB146
	.4byte	.LBE146
	.4byte	.LBB149
	.4byte	.LBE149
	.4byte	0
	.4byte	0
	.4byte	.LBB151
	.4byte	.LBE151
	.4byte	.LBB152
	.4byte	.LBE152
	.4byte	.LBB161
	.4byte	.LBE161
	.4byte	0
	.4byte	0
	.4byte	.LBB155
	.4byte	.LBE155
	.4byte	.LBB159
	.4byte	.LBE159
	.4byte	.LBB160
	.4byte	.LBE160
	.4byte	0
	.4byte	0
	.4byte	.Ltext0
	.4byte	.Letext0
	.4byte	.LFB124
	.4byte	.LFE124
	.4byte	0
	.4byte	0
	.section	.debug_line,"",@progbits
.Ldebug_line0:
	.section	.debug_str,"MS",@progbits,1
.LASF84:
	.string	"newv"
.LASF102:
	.string	"voffp"
.LASF17:
	.string	"pthread_t"
.LASF42:
	.string	"_shortbuf"
.LASF143:
	.string	"_IO_lock_t"
.LASF125:
	.string	"stderr"
.LASF146:
	.string	"__builtin_puts"
.LASF31:
	.string	"_IO_buf_end"
.LASF69:
	.string	"flags"
.LASF83:
	.string	"expect"
.LASF126:
	.string	"__rseq_abi"
.LASF29:
	.string	"_IO_write_end"
.LASF2:
	.string	"unsigned int"
.LASF79:
	.string	"next"
.LASF23:
	.string	"_flags"
.LASF81:
	.string	"head"
.LASF134:
	.string	"pthread_join"
.LASF111:
	.string	"_cpu"
.LASF132:
	.string	"strerror"
.LASF71:
	.string	"percpu_lock"
.LASF35:
	.string	"_markers"
.LASF133:
	.string	"pthread_create"
.LASF122:
	.string	"error"
.LASF94:
	.string	"rseq_percpu_unlock"
.LASF131:
	.string	"__errno_location"
.LASF104:
	.string	"list"
.LASF99:
	.string	"rseq_cmpeqv_storev"
.LASF114:
	.string	"this_cpu_list_pop"
.LASF18:
	.string	"uint32_t"
.LASF124:
	.string	"stdout"
.LASF34:
	.string	"_IO_save_end"
.LASF137:
	.string	"malloc"
.LASF93:
	.string	"__len"
.LASF73:
	.string	"count"
.LASF15:
	.string	"__cpu_mask"
.LASF109:
	.string	"rseq_this_cpu_lock"
.LASF7:
	.string	"long long unsigned int"
.LASF33:
	.string	"_IO_backup_base"
.LASF44:
	.string	"_offset"
.LASF91:
	.string	"__dest"
.LASF89:
	.string	"fprintf"
.LASF37:
	.string	"_fileno"
.LASF116:
	.string	"this_cpu_list_push"
.LASF85:
	.string	"abort"
.LASF145:
	.string	"puts"
.LASF144:
	.string	"rseq_cpu_start"
.LASF14:
	.string	"size_t"
.LASF115:
	.string	"offset"
.LASF130:
	.string	"rseq_unregister_current_thread"
.LASF26:
	.string	"_IO_read_base"
.LASF123:
	.string	"stdin"
.LASF54:
	.string	"_next"
.LASF138:
	.string	"free"
.LASF56:
	.string	"_pos"
.LASF103:
	.string	"load"
.LASF88:
	.string	"__fmt"
.LASF120:
	.string	"__cpu"
.LASF112:
	.string	"targetptr"
.LASF16:
	.string	"cpu_set_t"
.LASF87:
	.string	"__stream"
.LASF117:
	.string	"test_percpu_list"
.LASF13:
	.string	"char"
.LASF128:
	.string	"__fprintf_chk"
.LASF50:
	.string	"_mode"
.LASF53:
	.string	"_IO_marker"
.LASF95:
	.string	"test_percpu_spinlock"
.LASF24:
	.string	"_IO_read_ptr"
.LASF78:
	.string	"data"
.LASF63:
	.string	"ptr32"
.LASF59:
	.string	"__u32"
.LASF118:
	.string	"expected_sum"
.LASF86:
	.string	"cmpfail"
.LASF27:
	.string	"_IO_write_base"
.LASF6:
	.string	"long long int"
.LASF108:
	.string	"printf"
.LASF75:
	.string	"lock"
.LASF32:
	.string	"_IO_save_base"
.LASF62:
	.string	"padding"
.LASF90:
	.string	"memset"
.LASF8:
	.string	"__quad_t"
.LASF67:
	.string	"cpu_id"
.LASF45:
	.string	"__pad1"
.LASF46:
	.string	"__pad2"
.LASF47:
	.string	"__pad3"
.LASF48:
	.string	"__pad4"
.LASF49:
	.string	"__pad5"
.LASF65:
	.string	"rseq"
.LASF129:
	.string	"rseq_register_current_thread"
.LASF110:
	.string	"test_percpu_spinlock_thread"
.LASF41:
	.string	"_vtable_offset"
.LASF66:
	.string	"cpu_id_start"
.LASF72:
	.string	"test_data_entry"
.LASF58:
	.string	"long double"
.LASF20:
	.string	"intptr_t"
.LASF140:
	.string	"GNU C11 5.4.0 20160609 -Asystem=linux -Asystem=unix -Asystem=posix -msecure-plt -g -O2 -fstack-protector-strong"
.LASF97:
	.string	"num_threads"
.LASF64:
	.string	"ptr64"
.LASF60:
	.string	"__u64"
.LASF92:
	.string	"__ch"
.LASF25:
	.string	"_IO_read_end"
.LASF101:
	.string	"expectnot"
.LASF5:
	.string	"short int"
.LASF10:
	.string	"long int"
.LASF135:
	.string	"__stack_chk_fail"
.LASF70:
	.string	"percpu_lock_entry"
.LASF105:
	.string	"node"
.LASF19:
	.string	"uint64_t"
.LASF76:
	.string	"reps"
.LASF113:
	.string	"newval"
.LASF77:
	.string	"percpu_list_node"
.LASF98:
	.string	"test_threads"
.LASF43:
	.string	"_lock"
.LASF119:
	.string	"allowed_cpus"
.LASF12:
	.string	"sizetype"
.LASF3:
	.string	"long unsigned int"
.LASF22:
	.string	"__bits"
.LASF39:
	.string	"_old_offset"
.LASF82:
	.string	"percpu_list"
.LASF52:
	.string	"_IO_FILE"
.LASF100:
	.string	"rseq_cmpnev_storeoffp_load"
.LASF127:
	.string	"__assert_fail"
.LASF141:
	.string	"basic_percpu_ops_test.c"
.LASF0:
	.string	"unsigned char"
.LASF55:
	.string	"_sbuf"
.LASF28:
	.string	"_IO_write_ptr"
.LASF80:
	.string	"percpu_list_entry"
.LASF142:
	.string	"/home/compudj/git/librseq/tests"
.LASF136:
	.string	"sched_yield"
.LASF74:
	.string	"spinlock_test_data"
.LASF139:
	.string	"sched_getaffinity"
.LASF9:
	.string	"__off_t"
.LASF4:
	.string	"signed char"
.LASF57:
	.string	"off_t"
.LASF1:
	.string	"short unsigned int"
.LASF121:
	.string	"main"
.LASF96:
	.string	"__PRETTY_FUNCTION__"
.LASF61:
	.string	"double"
.LASF106:
	.string	"test_percpu_list_thread"
.LASF36:
	.string	"_chain"
.LASF107:
	.string	"__percpu_list_pop"
.LASF21:
	.string	"FILE"
.LASF38:
	.string	"_flags2"
.LASF68:
	.string	"rseq_cs"
.LASF40:
	.string	"_cur_column"
.LASF11:
	.string	"__off64_t"
.LASF51:
	.string	"_unused2"
.LASF30:
	.string	"_IO_buf_base"
	.ident	"GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609"
	.section	.note.GNU-stack,"",@progbits

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 14:00     ` Mathieu Desnoyers
@ 2020-07-08 14:21       ` Christophe Leroy
  2020-07-08 14:32         ` Mathieu Desnoyers
  2020-07-09  0:10       ` Segher Boessenkool
  1 sibling, 1 reply; 22+ messages in thread
From: Christophe Leroy @ 2020-07-08 14:21 UTC (permalink / raw)
  To: Mathieu Desnoyers, Segher Boessenkool
  Cc: Boqun Feng, linuxppc-dev, Michael Jeanson



Le 08/07/2020 à 16:00, Mathieu Desnoyers a écrit :
> ----- On Jul 8, 2020, at 8:33 AM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:
> 
>> ----- On Jul 7, 2020, at 8:59 PM, Segher Boessenkool segher@kernel.crashing.org
>> wrote:
> [...]
>>>
>>> So perhaps you have code like
>>>
>>>   int *p;
>>>   int x;
>>>   ...
>>>   asm ("lwz %0,%1" : "=r"(x) : "m"(*p));
>>
>> We indeed have explicit "lwz" and "stw" instructions in there.
>>
>>>
>>> where that last line should actually read
>>>
>>>   asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));
>>
>> Indeed, turning those into "lwzx" and "stwx" seems to fix the issue.
>>
>> There has been some level of extra CPP macro coating around those instructions
>> to
>> support both ppc32 and ppc64 with the same assembly. So adding %X[arg] is not
>> trivial.
>> Let me see what can be done here.
> 
> I did the following changes which appear to generate valid asm.
> See attached corresponding .S output.
> 
> I grepped for uses of "m" asm operand in Linux powerpc code and noticed it's pretty much
> always used with e.g. "lwz%U1%X1". I could find one blog post discussing that %U is about
> update flag, and nothing about %X. Are those documented ?

As far as I can see, %U is mentioned in 
https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html in the 
powerpc subpart, at the "m" constraint.

For the %X I don't know.

Christophe

> 
> Although it appears to generate valid asm, I have the feeling I'm relying on undocumented
> features here. :-/
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 14:21       ` Christophe Leroy
@ 2020-07-08 14:32         ` Mathieu Desnoyers
  2020-07-08 16:11           ` Christophe Leroy
  2020-07-09  0:15           ` Segher Boessenkool
  0 siblings, 2 replies; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-08 14:32 UTC (permalink / raw)
  To: Christophe Leroy; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

----- On Jul 8, 2020, at 10:21 AM, Christophe Leroy christophe.leroy@csgroup.eu wrote:

> Le 08/07/2020 à 16:00, Mathieu Desnoyers a écrit :
>> ----- On Jul 8, 2020, at 8:33 AM, Mathieu Desnoyers
>> mathieu.desnoyers@efficios.com wrote:
>> 
>>> ----- On Jul 7, 2020, at 8:59 PM, Segher Boessenkool segher@kernel.crashing.org
>>> wrote:
>> [...]
>>>>
>>>> So perhaps you have code like
>>>>
>>>>   int *p;
>>>>   int x;
>>>>   ...
>>>>   asm ("lwz %0,%1" : "=r"(x) : "m"(*p));
>>>
>>> We indeed have explicit "lwz" and "stw" instructions in there.
>>>
>>>>
>>>> where that last line should actually read
>>>>
>>>>   asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));
>>>
>>> Indeed, turning those into "lwzx" and "stwx" seems to fix the issue.
>>>
>>> There has been some level of extra CPP macro coating around those instructions
>>> to
>>> support both ppc32 and ppc64 with the same assembly. So adding %X[arg] is not
>>> trivial.
>>> Let me see what can be done here.
>> 
>> I did the following changes which appear to generate valid asm.
>> See attached corresponding .S output.
>> 
>> I grepped for uses of "m" asm operand in Linux powerpc code and noticed it's
>> pretty much
>> always used with e.g. "lwz%U1%X1". I could find one blog post discussing that %U
>> is about
>> update flag, and nothing about %X. Are those documented ?
> 
> As far as I can see, %U is mentioned in
> https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html in the
> powerpc subpart, at the "m" constraint.

Yep, I did notice it, but mistakenly thought it was only needed for "m<>" operand,
not "m".

Thanks,

Mathieu

> 
> For the %X I don't know.
> 
> Christophe
> 
>> 
>> Although it appears to generate valid asm, I have the feeling I'm relying on
>> undocumented
>> features here. :-/

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 14:32         ` Mathieu Desnoyers
@ 2020-07-08 16:11           ` Christophe Leroy
  2020-07-09  0:15           ` Segher Boessenkool
  1 sibling, 0 replies; 22+ messages in thread
From: Christophe Leroy @ 2020-07-08 16:11 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson



Le 08/07/2020 à 16:32, Mathieu Desnoyers a écrit :
> ----- On Jul 8, 2020, at 10:21 AM, Christophe Leroy christophe.leroy@csgroup.eu wrote:
> 
>> Le 08/07/2020 à 16:00, Mathieu Desnoyers a écrit :
>>> ----- On Jul 8, 2020, at 8:33 AM, Mathieu Desnoyers
>>> mathieu.desnoyers@efficios.com wrote:
>>>
>>>> ----- On Jul 7, 2020, at 8:59 PM, Segher Boessenkool segher@kernel.crashing.org
>>>> wrote:
>>> [...]
>>>>>
>>>>> So perhaps you have code like
>>>>>
>>>>>    int *p;
>>>>>    int x;
>>>>>    ...
>>>>>    asm ("lwz %0,%1" : "=r"(x) : "m"(*p));
>>>>
>>>> We indeed have explicit "lwz" and "stw" instructions in there.
>>>>
>>>>>
>>>>> where that last line should actually read
>>>>>
>>>>>    asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));
>>>>
>>>> Indeed, turning those into "lwzx" and "stwx" seems to fix the issue.
>>>>
>>>> There has been some level of extra CPP macro coating around those instructions
>>>> to
>>>> support both ppc32 and ppc64 with the same assembly. So adding %X[arg] is not
>>>> trivial.
>>>> Let me see what can be done here.
>>>
>>> I did the following changes which appear to generate valid asm.
>>> See attached corresponding .S output.
>>>
>>> I grepped for uses of "m" asm operand in Linux powerpc code and noticed it's
>>> pretty much
>>> always used with e.g. "lwz%U1%X1". I could find one blog post discussing that %U
>>> is about
>>> update flag, and nothing about %X. Are those documented ?
>>
>> As far as I can see, %U is mentioned in
>> https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html in the
>> powerpc subpart, at the "m" constraint.
> 
> Yep, I did notice it, but mistakenly thought it was only needed for "m<>" operand,
> not "m".

You are right, AFAIU on recent versions of GCC, %U has no effect without m<>

Christophe

> 
> Thanks,
> 
> Mathieu
> 
>>
>> For the %X I don't know.
>>
>> Christophe
>>
>>>
>>> Although it appears to generate valid asm, I have the feeling I'm relying on
>>> undocumented
>>> features here. :-/
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 12:27   ` Michael Ellerman
@ 2020-07-08 23:53     ` Segher Boessenkool
  2020-07-09  0:01       ` Mathieu Desnoyers
  0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-08 23:53 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: linuxppc-dev, Boqun Feng, Mathieu Desnoyers, Michael Jeanson

Hi!

On Wed, Jul 08, 2020 at 10:27:27PM +1000, Michael Ellerman wrote:
> Segher Boessenkool <segher@kernel.crashing.org> writes:
> > You'll have to show the actual failing machine code, and with enough
> > context that we can relate this to the source code.
> >
> > -save-temps helps, or use -S instead of -c, etc.
> 
> Attached below.

Thanks!

> I think that's from:
> 
> #define LOAD_WORD       "ld "
> 
> #define RSEQ_ASM_OP_CMPEQ(var, expect, label)                                   \
>                 LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                   \

The way this hardcodes r17 *will* break, btw.  The compiler will not
likely want to use r17 as long as your code (after inlining etc.!) stays
small, but there is Murphy's law.

Anyway...  something in rseq_str is wrong, missing %X<n>.  This may
have to do with the abuse of inline asm here, making a fix harder :-(


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 23:53     ` Segher Boessenkool
@ 2020-07-09  0:01       ` Mathieu Desnoyers
  2020-07-09  0:18         ` Segher Boessenkool
  0 siblings, 1 reply; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-09  0:01 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson


----- Segher Boessenkool <segher@kernel.crashing.org> wrote:
> Hi!
> 
> On Wed, Jul 08, 2020 at 10:27:27PM +1000, Michael Ellerman wrote:
> > Segher Boessenkool <segher@kernel.crashing.org> writes:
> > > You'll have to show the actual failing machine code, and with enough
> > > context that we can relate this to the source code.
> > >
> > > -save-temps helps, or use -S instead of -c, etc.
> > 
> > Attached below.
> 
> Thanks!
> 
> > I think that's from:
> > 
> > #define LOAD_WORD       "ld "
> > 
> > #define RSEQ_ASM_OP_CMPEQ(var, expect, label)                                   \
> >                 LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                   \
> 
> The way this hardcodes r17 *will* break, btw.  The compiler will not
> likely want to use r17 as long as your code (after inlining etc.!) stays
> small, but there is Murphy's law.

r17 is in the clobber list, so it should be ok.

> 
> Anyway...  something in rseq_str is wrong, missing %X<n>.  This may
> have to do with the abuse of inline asm here, making a fix harder :-(

I just committed a fix which enhances the macros.

Thanks for your help!

Mathieu

> 
> 
> Segher

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 14:00     ` Mathieu Desnoyers
  2020-07-08 14:21       ` Christophe Leroy
@ 2020-07-09  0:10       ` Segher Boessenkool
  2020-07-09 13:33         ` Mathieu Desnoyers
  1 sibling, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-09  0:10 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

Hi!

On Wed, Jul 08, 2020 at 10:00:01AM -0400, Mathieu Desnoyers wrote:
> >> So perhaps you have code like
> >> 
> >>  int *p;
> >>  int x;
> >>  ...
> >>  asm ("lwz %0,%1" : "=r"(x) : "m"(*p));
> > 
> > We indeed have explicit "lwz" and "stw" instructions in there.
> > 
> >> 
> >> where that last line should actually read
> >> 
> >>  asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));
> > 
> > Indeed, turning those into "lwzx" and "stwx" seems to fix the issue.
> > 
> > There has been some level of extra CPP macro coating around those instructions
> > to
> > support both ppc32 and ppc64 with the same assembly. So adding %X[arg] is not
> > trivial.
> > Let me see what can be done here.
> 
> I did the following changes which appear to generate valid asm.
> See attached corresponding .S output.
> 
> I grepped for uses of "m" asm operand in Linux powerpc code and noticed it's pretty much
> always used with e.g. "lwz%U1%X1". I could find one blog post discussing that %U is about
> update flag, and nothing about %X. Are those documented ?

Historically, no machine-specific output modifiers were documented.
For GCC 10 i added a few (in
https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Machine-Constraints.html#Machine-Constraints
), but not all (that user code should use!) yet.

> Although it appears to generate valid asm, I have the feeling I'm relying on undocumented
> features here. :-/

It is supported for 30 years or so now.  GCC itself uses this a *lot*
internally as well.  It works, and it will work forever.

> -#define STORE_WORD     "std "
> -#define LOAD_WORD      "ld "
> -#define LOADX_WORD     "ldx "
> +#define STORE_WORD(arg)        "std%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* To memory ("m" constraint) */
> +#define LOAD_WORD(arg) "lwd%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* From memory ("m" constraint) */

That cannot work (you typoed "ld" here).

Some more advice about this code, pretty generic stuff:

The way this all uses r17 will likely not work reliably.

The way multiple asm statements are used seems to have missing
dependencies between the statements.

Don't try to work *against* the compiler.  You will not win.

Alternatively, write assembler code, if that is what you actually want
to do?  Not C code.

And done macro-mess this, you want to be able to debug it, and you need
other people to be able to read it!


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-08 14:32         ` Mathieu Desnoyers
  2020-07-08 16:11           ` Christophe Leroy
@ 2020-07-09  0:15           ` Segher Boessenkool
  1 sibling, 0 replies; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-09  0:15 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

On Wed, Jul 08, 2020 at 10:32:20AM -0400, Mathieu Desnoyers wrote:
> > As far as I can see, %U is mentioned in
> > https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html in the
> > powerpc subpart, at the "m" constraint.
> 
> Yep, I did notice it, but mistakenly thought it was only needed for "m<>" operand,
> not "m".

Historically, "m" meant what "m<>" does now (in inline asm).  Too many
people couldn't get it right ever (on other targets -- not that the
situation was great for PowerPC, heh), so in inline asm "m" now means
"no pre-modify or post-modify".


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09  0:01       ` Mathieu Desnoyers
@ 2020-07-09  0:18         ` Segher Boessenkool
  2020-07-09 13:43           ` Mathieu Desnoyers
  0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-09  0:18 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

On Wed, Jul 08, 2020 at 08:01:23PM -0400, Mathieu Desnoyers wrote:
> > > #define RSEQ_ASM_OP_CMPEQ(var, expect, label)                                   \
> > >                 LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                   \
> > 
> > The way this hardcodes r17 *will* break, btw.  The compiler will not
> > likely want to use r17 as long as your code (after inlining etc.!) stays
> > small, but there is Murphy's law.
> 
> r17 is in the clobber list, so it should be ok.

What protects r17 *after* this asm statement?


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09  0:10       ` Segher Boessenkool
@ 2020-07-09 13:33         ` Mathieu Desnoyers
  2020-07-09 17:31           ` Segher Boessenkool
  0 siblings, 1 reply; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-09 13:33 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

----- On Jul 8, 2020, at 8:10 PM, Segher Boessenkool segher@kernel.crashing.org wrote:

> Hi!
> 
> On Wed, Jul 08, 2020 at 10:00:01AM -0400, Mathieu Desnoyers wrote:
[...]
> 
>> -#define STORE_WORD     "std "
>> -#define LOAD_WORD      "ld "
>> -#define LOADX_WORD     "ldx "
>> +#define STORE_WORD(arg)        "std%U[" __rseq_str(arg) "]%X[" __rseq_str(arg)
>> "] "    /* To memory ("m" constraint) */
>> +#define LOAD_WORD(arg) "lwd%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "
>> /* From memory ("m" constraint) */
> 
> That cannot work (you typoed "ld" here).

Indeed, I noticed it before pushing to master (lwd -> ld).

> 
> Some more advice about this code, pretty generic stuff:

Let's take an example to support the discussion here. I'm taking it from
master branch (after a cleanup changing e.g. LOAD_WORD into RSEQ_LOAD_LONG).
So for powerpc32 we have (code edited to remove testing instrumentation):

#define __rseq_str_1(x) #x
#define __rseq_str(x)           __rseq_str_1(x)

#define RSEQ_STORE_LONG(arg)    "stw%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* To memory ("m" constraint) */
#define RSEQ_STORE_INT(arg)     RSEQ_STORE_LONG(arg)                                    /* To memory ("m" constraint) */
#define RSEQ_LOAD_LONG(arg)     "lwz%U[" __rseq_str(arg) "]%X[" __rseq_str(arg) "] "    /* From memory ("m" constraint) */
#define RSEQ_LOAD_INT(arg)      RSEQ_LOAD_LONG(arg)                                     /* From memory ("m" constraint) */
#define RSEQ_LOADX_LONG         "lwzx "                                                 /* From base register ("b" constraint) */
#define RSEQ_CMP_LONG           "cmpw "

#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags,                          \
                        start_ip, post_commit_offset, abort_ip)                 \
                ".pushsection __rseq_cs, \"aw\"\n\t"                            \
                ".balign 32\n\t"                                                \
                __rseq_str(label) ":\n\t"                                       \
                ".long " __rseq_str(version) ", " __rseq_str(flags) "\n\t"      \
                /* 32-bit only supported on BE */                               \
                ".long 0x0, " __rseq_str(start_ip) ", 0x0, " __rseq_str(post_commit_offset) ", 0x0, " __rseq_str(abort_ip) "\n\t" \
                ".popsection\n\t"                                       \
                ".pushsection __rseq_cs_ptr_array, \"aw\"\n\t"          \
                ".long 0x0, " __rseq_str(label) "b\n\t"                 \
                ".popsection\n\t"

/*
 * Exit points of a rseq critical section consist of all instructions outside
 * of the critical section where a critical section can either branch to or
 * reach through the normal course of its execution. The abort IP and the
 * post-commit IP are already part of the __rseq_cs section and should not be
 * explicitly defined as additional exit points. Knowing all exit points is
 * useful to assist debuggers stepping over the critical section.
 */
#define RSEQ_ASM_DEFINE_EXIT_POINT(start_ip, exit_ip)                           \
                ".pushsection __rseq_exit_point_array, \"aw\"\n\t"              \
                /* 32-bit only supported on BE */                               \
                ".long 0x0, " __rseq_str(start_ip) ", 0x0, " __rseq_str(exit_ip) "\n\t" \
                ".popsection\n\t"

#define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs)                        \
                "lis %%r17, (" __rseq_str(cs_label) ")@ha\n\t"                  \
                "addi %%r17, %%r17, (" __rseq_str(cs_label) ")@l\n\t"           \
                RSEQ_STORE_INT(rseq_cs) "%%r17, %[" __rseq_str(rseq_cs) "]\n\t" \
                __rseq_str(label) ":\n\t"

#define RSEQ_ASM_DEFINE_TABLE(label, start_ip, post_commit_ip, abort_ip)        \
                __RSEQ_ASM_DEFINE_TABLE(label, 0x0, 0x0, start_ip,              \
                                        (post_commit_ip - start_ip), abort_ip)

#define RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, label)                      \
                RSEQ_LOAD_INT(current_cpu_id) "%%r17, %[" __rseq_str(current_cpu_id) "]\n\t" \
                "cmpw cr7, %[" __rseq_str(cpu_id) "], %%r17\n\t"                \
                "bne- cr7, " __rseq_str(label) "\n\t"

#define RSEQ_ASM_DEFINE_ABORT(label, abort_label)                               \
                ".pushsection __rseq_failure, \"ax\"\n\t"                       \
                ".long " __rseq_str(RSEQ_SIG) "\n\t"                            \
                __rseq_str(label) ":\n\t"                                       \
                "b %l[" __rseq_str(abort_label) "]\n\t"                         \
                ".popsection\n\t"

#define RSEQ_ASM_OP_CMPEQ(var, expect, label)                                   \
                RSEQ_LOAD_LONG(var) "%%r17, %[" __rseq_str(var) "]\n\t"         \
                RSEQ_CMP_LONG "cr7, %%r17, %[" __rseq_str(expect) "]\n\t"               \
                "bne- cr7, " __rseq_str(label) "\n\t"

#define RSEQ_ASM_OP_FINAL_STORE(value, var, post_commit_label)                  \
                RSEQ_STORE_LONG(var) "%[" __rseq_str(value) "], %[" __rseq_str(var) "]\n\t" \
                __rseq_str(post_commit_label) ":\n\t"

static inline __attribute__((always_inline))
int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu)
{
        __asm__ __volatile__ goto (
                RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */
                RSEQ_ASM_DEFINE_EXIT_POINT(1f, %l[cmpfail])

                /* Start rseq by storing table entry pointer into rseq_cs. */
                RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
                /* cmp cpuid */
                RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, 4f)
                /* cmp @v equal to @expect */
                RSEQ_ASM_OP_CMPEQ(v, expect, %l[cmpfail])

                /* final store */
                RSEQ_ASM_OP_FINAL_STORE(newv, v, 2)
                RSEQ_ASM_DEFINE_ABORT(4, abort)

                : /* gcc asm goto does not allow outputs */
                : [cpu_id]              "r" (cpu),
                  [current_cpu_id]      "m" (__rseq_abi.cpu_id),
                  [rseq_cs]             "m" (__rseq_abi.rseq_cs),
                  [v]                   "m" (*v),
                  [expect]              "r" (expect),
                  [newv]                "r" (newv)
                : "memory", "cc", "r17"
                : abort, cmpfail
        );
        return 0;
abort:
        RSEQ_INJECT_FAILED
        return -1;
cmpfail:
        return 1;
}

> 
> The way this all uses r17 will likely not work reliably.

r17 is only used as a temporary register within the inline assembler, and it is
in the clobber list. In which scenario would it not work reliably ?

> The way multiple asm statements are used seems to have missing
> dependencies between the statements.

I'm not sure I follow here. Note that we are injecting the CPP macros into
a single inline asm statement as strings.

> 
> Don't try to work *against* the compiler.  You will not win.
> 
> Alternatively, write assembler code, if that is what you actually want
> to do?  Not C code.
>
> And done macro-mess this, you want to be able to debug it, and you need
> other people to be able to read it!

I understand that looking at macros can be cumbersome from the perspective
of a reviewer only interested in a single architecture,

However, from my perspective, as a maintainer who must maintain similar code
for x86 32/64, powerpc 32/64, arm, aarch64, s390, s390x, mips 32/64, and likely
other architectures in the future, the macros abstracting 32-bit and 64-bit
allow to eliminate code duplication for each architecture with 32-bit and 64-bit
variants, which is better for maintainability.

Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09  0:18         ` Segher Boessenkool
@ 2020-07-09 13:43           ` Mathieu Desnoyers
  2020-07-09 17:37             ` Segher Boessenkool
  0 siblings, 1 reply; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-09 13:43 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

----- On Jul 8, 2020, at 8:18 PM, Segher Boessenkool segher@kernel.crashing.org wrote:

> On Wed, Jul 08, 2020 at 08:01:23PM -0400, Mathieu Desnoyers wrote:
>> > > #define RSEQ_ASM_OP_CMPEQ(var, expect, label)
>> > > \
>> > >                 LOAD_WORD "%%r17, %[" __rseq_str(var) "]\n\t"                   \
>> > 
>> > The way this hardcodes r17 *will* break, btw.  The compiler will not
>> > likely want to use r17 as long as your code (after inlining etc.!) stays
>> > small, but there is Murphy's law.
>> 
>> r17 is in the clobber list, so it should be ok.
> 
> What protects r17 *after* this asm statement?

As discussed in the other leg of the thread (with the code example),
r17 is in the clobber list of all asm statements using this macro, and
is used as a temporary register within each inline asm.

Thanks,

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09 13:33         ` Mathieu Desnoyers
@ 2020-07-09 17:31           ` Segher Boessenkool
  0 siblings, 0 replies; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-09 17:31 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

On Thu, Jul 09, 2020 at 09:33:18AM -0400, Mathieu Desnoyers wrote:
> > The way this all uses r17 will likely not work reliably.
> 
> r17 is only used as a temporary register within the inline assembler, and it is
> in the clobber list. In which scenario would it not work reliably ?

This isn't clear at all, that is the problem.

> > The way multiple asm statements are used seems to have missing
> > dependencies between the statements.
> 
> I'm not sure I follow here. Note that we are injecting the CPP macros into
> a single inline asm statement as strings.

Yeah...  more trickiness.

> > And done macro-mess this, you want to be able to debug it, and you need
> > other people to be able to read it!
> 
> I understand that looking at macros can be cumbersome from the perspective
> of a reviewer only interested in a single architecture,

No, from the perspective of *any* reviewer.

> However, from my perspective, as a maintainer who must maintain similar code
> for x86 32/64, powerpc 32/64, arm, aarch64, s390, s390x, mips 32/64, and likely
> other architectures in the future, the macros abstracting 32-bit and 64-bit
> allow to eliminate code duplication for each architecture with 32-bit and 64-bit
> variants, which is better for maintainability.

IMNSHO it is MUCH better to just have simple separate implementations
for each.  They differ in *all* details.

Or have static inline functions, with proper dependencies, instead of
nasty text macros.

But it's your code, do what you want :-)


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09 13:43           ` Mathieu Desnoyers
@ 2020-07-09 17:37             ` Segher Boessenkool
  2020-07-09 17:42               ` Mathieu Desnoyers
  0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-09 17:37 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

On Thu, Jul 09, 2020 at 09:43:47AM -0400, Mathieu Desnoyers wrote:
> > What protects r17 *after* this asm statement?
> 
> As discussed in the other leg of the thread (with the code example),
> r17 is in the clobber list of all asm statements using this macro, and
> is used as a temporary register within each inline asm.

That works fine then, for a testcase.  Using r17 is not a great idea for
performance (it increases the active register footprint, and causes more
registers to be saved in the prologue of the functions, esp. on older
compilers), and it is easier to just let the compiler choose a good
register to use.  But maybe you want to see r17 in the generated
testcases, as eyecatcher or something, dunno :-)


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09 17:37             ` Segher Boessenkool
@ 2020-07-09 17:42               ` Mathieu Desnoyers
  2020-07-09 17:56                 ` Mathieu Desnoyers
  2020-07-09 20:31                 ` Segher Boessenkool
  0 siblings, 2 replies; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-09 17:42 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

----- On Jul 9, 2020, at 1:37 PM, Segher Boessenkool segher@kernel.crashing.org wrote:

> On Thu, Jul 09, 2020 at 09:43:47AM -0400, Mathieu Desnoyers wrote:
>> > What protects r17 *after* this asm statement?
>> 
>> As discussed in the other leg of the thread (with the code example),
>> r17 is in the clobber list of all asm statements using this macro, and
>> is used as a temporary register within each inline asm.
> 
> That works fine then, for a testcase.  Using r17 is not a great idea for
> performance (it increases the active register footprint, and causes more
> registers to be saved in the prologue of the functions, esp. on older
> compilers), and it is easier to just let the compiler choose a good
> register to use.  But maybe you want to see r17 in the generated
> testcases, as eyecatcher or something, dunno :-)

Just to make sure I understand your recommendation. So rather than
hard coding r17 as the temporary registers, we could explicitly
declare the temporary register as a C variable, pass it as an
input operand to the inline asm, and then refer to it by operand
name in the macros using it. This way the compiler would be free
to perform its own register allocation.

If that is what you have in mind, then yes, I think it makes a
lot of sense.

Thanks,

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09 17:42               ` Mathieu Desnoyers
@ 2020-07-09 17:56                 ` Mathieu Desnoyers
  2020-07-09 20:46                   ` Segher Boessenkool
  2020-07-09 20:31                 ` Segher Boessenkool
  1 sibling, 1 reply; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-09 17:56 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

----- On Jul 9, 2020, at 1:42 PM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:

> ----- On Jul 9, 2020, at 1:37 PM, Segher Boessenkool segher@kernel.crashing.org
> wrote:
> 
>> On Thu, Jul 09, 2020 at 09:43:47AM -0400, Mathieu Desnoyers wrote:
>>> > What protects r17 *after* this asm statement?
>>> 
>>> As discussed in the other leg of the thread (with the code example),
>>> r17 is in the clobber list of all asm statements using this macro, and
>>> is used as a temporary register within each inline asm.
>> 
>> That works fine then, for a testcase.  Using r17 is not a great idea for
>> performance (it increases the active register footprint, and causes more
>> registers to be saved in the prologue of the functions, esp. on older
>> compilers), and it is easier to just let the compiler choose a good
>> register to use.  But maybe you want to see r17 in the generated
>> testcases, as eyecatcher or something, dunno :-)
> 
> Just to make sure I understand your recommendation. So rather than
> hard coding r17 as the temporary registers, we could explicitly
> declare the temporary register as a C variable, pass it as an
> input operand to the inline asm, and then refer to it by operand
> name in the macros using it. This way the compiler would be free
> to perform its own register allocation.
> 
> If that is what you have in mind, then yes, I think it makes a
> lot of sense.

Except that asm goto have this limitation with gcc: those cannot
have any output operand, only inputs, clobbers and target labels.
We cannot modify a temporary register received as input operand. So I don't
see how to get a temporary register allocated by the compiler considering
this limitation.

Thanks,

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09 17:42               ` Mathieu Desnoyers
  2020-07-09 17:56                 ` Mathieu Desnoyers
@ 2020-07-09 20:31                 ` Segher Boessenkool
  1 sibling, 0 replies; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-09 20:31 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

On Thu, Jul 09, 2020 at 01:42:56PM -0400, Mathieu Desnoyers wrote:
> > That works fine then, for a testcase.  Using r17 is not a great idea for
> > performance (it increases the active register footprint, and causes more
> > registers to be saved in the prologue of the functions, esp. on older
> > compilers), and it is easier to just let the compiler choose a good
> > register to use.  But maybe you want to see r17 in the generated
> > testcases, as eyecatcher or something, dunno :-)
> 
> Just to make sure I understand your recommendation. So rather than
> hard coding r17 as the temporary registers, we could explicitly
> declare the temporary register as a C variable, pass it as an
> input operand to the inline asm, and then refer to it by operand
> name in the macros using it. This way the compiler would be free
> to perform its own register allocation.
> 
> If that is what you have in mind, then yes, I think it makes a
> lot of sense.

You write to it as well, so an inout register ("+r" or such).  And yes,
you use a local var for it (like "long tmp;").  And then you can refer
to it like anything else in your asm, like "%3" or like
"%[a_long_name]"; and the compiler sees it as any other register,
exactly.


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09 17:56                 ` Mathieu Desnoyers
@ 2020-07-09 20:46                   ` Segher Boessenkool
  2020-07-09 20:57                     ` Mathieu Desnoyers
  0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2020-07-09 20:46 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

On Thu, Jul 09, 2020 at 01:56:19PM -0400, Mathieu Desnoyers wrote:
> > Just to make sure I understand your recommendation. So rather than
> > hard coding r17 as the temporary registers, we could explicitly
> > declare the temporary register as a C variable, pass it as an
> > input operand to the inline asm, and then refer to it by operand
> > name in the macros using it. This way the compiler would be free
> > to perform its own register allocation.
> > 
> > If that is what you have in mind, then yes, I think it makes a
> > lot of sense.
> 
> Except that asm goto have this limitation with gcc: those cannot
> have any output operand, only inputs, clobbers and target labels.
> We cannot modify a temporary register received as input operand. So I don't
> see how to get a temporary register allocated by the compiler considering
> this limitation.

Heh, yet another reason not to obfuscate your inline asm: it didn't
register this is asm goto.

A clobber is one way, yes (those *are* allowed in asm goto).  Another
way is to not actually change that register: move the original value
back into there at the end of the asm!  (That isn't always easy to do,
it depends on your code).  So something like

	long start = ...;
	long tmp = start;
	asm("stuff that modifies %0; ...; mr %0,%1" : : "r"(tmp), "r"(start));

is just fine: %0 isn't actually modified at all, as far as GCC is
concerned, and this isn't lying to it!


Segher

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Failure to build librseq on ppc
  2020-07-09 20:46                   ` Segher Boessenkool
@ 2020-07-09 20:57                     ` Mathieu Desnoyers
  0 siblings, 0 replies; 22+ messages in thread
From: Mathieu Desnoyers @ 2020-07-09 20:57 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Boqun Feng, linuxppc-dev, Michael Jeanson

----- On Jul 9, 2020, at 4:46 PM, Segher Boessenkool segher@kernel.crashing.org wrote:

> On Thu, Jul 09, 2020 at 01:56:19PM -0400, Mathieu Desnoyers wrote:
>> > Just to make sure I understand your recommendation. So rather than
>> > hard coding r17 as the temporary registers, we could explicitly
>> > declare the temporary register as a C variable, pass it as an
>> > input operand to the inline asm, and then refer to it by operand
>> > name in the macros using it. This way the compiler would be free
>> > to perform its own register allocation.
>> > 
>> > If that is what you have in mind, then yes, I think it makes a
>> > lot of sense.
>> 
>> Except that asm goto have this limitation with gcc: those cannot
>> have any output operand, only inputs, clobbers and target labels.
>> We cannot modify a temporary register received as input operand. So I don't
>> see how to get a temporary register allocated by the compiler considering
>> this limitation.
> 
> Heh, yet another reason not to obfuscate your inline asm: it didn't
> register this is asm goto.
> 
> A clobber is one way, yes (those *are* allowed in asm goto).  Another
> way is to not actually change that register: move the original value
> back into there at the end of the asm!  (That isn't always easy to do,
> it depends on your code).  So something like
> 
>	long start = ...;
>	long tmp = start;
>	asm("stuff that modifies %0; ...; mr %0,%1" : : "r"(tmp), "r"(start));
> 
> is just fine: %0 isn't actually modified at all, as far as GCC is
> concerned, and this isn't lying to it!

It appears to be at the cost of adding one extra instruction on the fast-path
to restore the register to its original value. I'll leave Boqun whom authored
the original rseq-ppc code to figure out what works best performance-wise
(when he finds time).

Thanks for the pointers!

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2020-07-09 20:59 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-07 19:17 Failure to build librseq on ppc Mathieu Desnoyers
2020-07-08  0:59 ` Segher Boessenkool
2020-07-08 12:27   ` Michael Ellerman
2020-07-08 23:53     ` Segher Boessenkool
2020-07-09  0:01       ` Mathieu Desnoyers
2020-07-09  0:18         ` Segher Boessenkool
2020-07-09 13:43           ` Mathieu Desnoyers
2020-07-09 17:37             ` Segher Boessenkool
2020-07-09 17:42               ` Mathieu Desnoyers
2020-07-09 17:56                 ` Mathieu Desnoyers
2020-07-09 20:46                   ` Segher Boessenkool
2020-07-09 20:57                     ` Mathieu Desnoyers
2020-07-09 20:31                 ` Segher Boessenkool
2020-07-08 12:33   ` Mathieu Desnoyers
2020-07-08 14:00     ` Mathieu Desnoyers
2020-07-08 14:21       ` Christophe Leroy
2020-07-08 14:32         ` Mathieu Desnoyers
2020-07-08 16:11           ` Christophe Leroy
2020-07-09  0:15           ` Segher Boessenkool
2020-07-09  0:10       ` Segher Boessenkool
2020-07-09 13:33         ` Mathieu Desnoyers
2020-07-09 17:31           ` Segher Boessenkool

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.