All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH] Convert filldir[64]() from __put_user() to unsafe_put_user()
Date: Sun, 6 Oct 2019 17:23:16 -0700	[thread overview]
Message-ID: <20191007002316.GA30301@roeck-us.net> (raw)
In-Reply-To: <CAHk-=wgrqwuZJmwbrjhjCFeSUu2i57unaGOnP4qZAmSyuGwMZA@mail.gmail.com>

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

On Sun, Oct 06, 2019 at 04:06:16PM -0700, Linus Torvalds wrote:
> On Sun, Oct 6, 2019 at 3:20 PM Guenter Roeck <linux@roeck-us.net> wrote:
> >
> > this patch causes all my sparc64 emulations to stall during boot. It causes
> > all alpha emulations to crash with [1a] and [1b] when booting from a virtual
> > disk, and one of the xtensa emulations to crash with [2].
> 
> Ho humm. I've run variations of that patch over a few years on x86,
> but obviously not on alpha/sparc.
> 
> At least I should still be able to read alpha assembly, even after all
> these years. Would you mind sending me the result of
> 
>     make fs/readdir.s
> 
> on alpha with the broken config? I'd hope that the sparc issue is the same.
> 
> Actually, could you also do
> 
>     make fs/readdir.o
> 
> and then send me the "objdump --disassemble" of that? That way I get
> the instruction offsets without having to count by hand.
> 

Both attached for alpha.

> > Unable to handle kernel paging request at virtual address 0000000000000004
> > rcS(47): Oops -1
> > pc = [<0000000000000004>]  ra = [<fffffc00004512e4>]  ps = 0000    Not tainted
> > pc is at 0x4
> 
> That is _funky_. I'm not seeing how it could possibly jump to 0x4, but
> it clearly does.
> 
> That said, are you sure it's _that_ commit? Because this pattern:
> 
Bisect on sparc pointed to this commit, and re-running the tests with
the commit reverted passed for all architectures. I didn't check any
further.

Please let me know if you need anything else at this point.

Thanks,
Guenter

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

	.set noreorder
	.set volatile
	.set noat
	.set nomacro
	.arch ev5
 # GNU C89 (GCC) version 9.2.0 (alpha-linux)
 #	compiled by GNU C version 6.5.0 20181026, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version none
 # warning: GMP header version 6.1.0 differs from library version 6.1.2.
 # warning: MPC header version 1.0.3 differs from library version 1.1.0.
 # GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
 # options passed:  -nostdinc -I ./arch/alpha/include
 # -I ./arch/alpha/include/generated -I ./include
 # -I ./arch/alpha/include/uapi -I ./arch/alpha/include/generated/uapi
 # -I ./include/uapi -I ./include/generated/uapi
 # -iprefix /opt/kernel/gcc-9.2.0-nolibc/alpha-linux/bin/../lib/gcc/alpha-linux/9.2.0/
 # -D __KERNEL__ -D KBUILD_BASENAME="readdir" -D KBUILD_MODNAME="readdir"
 # -isystem /opt/kernel/gcc-9.2.0-nolibc/alpha-linux/bin/../lib/gcc/alpha-linux/9.2.0/include
 # -include ./include/linux/kconfig.h
 # -include ./include/linux/compiler_types.h -MD fs/.readdir.s.d
 # fs/readdir.c -mno-fp-regs -mcpu=ev5 -auxbase-strip fs/readdir.s -O2
 # -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs
 # -Werror=implicit-function-declaration -Werror=implicit-int
 # -Wno-format-security -Wno-frame-address -Wformat-truncation=0
 # -Wformat-overflow=0 -Wno-address-of-packed-member
 # -Wframe-larger-than=2048 -Wno-unused-but-set-variable
 # -Wimplicit-fallthrough=3 -Wunused-const-variable=0
 # -Wdeclaration-after-statement -Wvla -Wno-pointer-sign
 # -Wno-stringop-truncation -Werror=date-time
 # -Werror=incompatible-pointer-types -Werror=designated-init
 # -Wno-packed-not-aligned -std=gnu90 -fno-strict-aliasing -fno-common
 # -fshort-wchar -fno-PIE -ffixed-8 -fno-jump-tables
 # -fno-delete-null-pointer-checks -fno-stack-protector
 # -fomit-frame-pointer -fno-strict-overflow -fno-merge-all-constants
 # -fmerge-constants -fstack-check=no -fconserve-stack
 # -fmacro-prefix-map=./= -fverbose-asm --param allow-store-data-races=0
 # options enabled:  -faggressive-loop-optimizations -falign-functions
 # -falign-jumps -falign-labels -falign-loops -fassume-phsa -fauto-inc-dec
 # -fbranch-count-reg -fcaller-saves -fcode-hoisting
 # -fcombine-stack-adjustments -fcompare-elim -fcprop-registers
 # -fcrossjumping -fcse-follow-jumps -fdefer-pop -fdevirtualize
 # -fdevirtualize-speculatively -fdwarf2-cfi-asm -fearly-inlining
 # -feliminate-unused-debug-types -fexpensive-optimizations
 # -fforward-propagate -ffp-int-builtin-inexact -ffunction-cse -fgcse
 # -fgcse-lm -fgnu-runtime -fgnu-unique -fguess-branch-probability
 # -fhoist-adjacent-loads -fident -fif-conversion -fif-conversion2
 # -findirect-inlining -finline -finline-atomics
 # -finline-functions-called-once -finline-small-functions -fipa-bit-cp
 # -fipa-cp -fipa-icf -fipa-icf-functions -fipa-icf-variables -fipa-profile
 # -fipa-pure-const -fipa-ra -fipa-reference -fipa-reference-addressable
 # -fipa-sra -fipa-stack-alignment -fipa-vrp -fira-hoist-pressure
 # -fira-share-save-slots -fira-share-spill-slots
 # -fisolate-erroneous-paths-dereference -fivopts -fkeep-static-consts
 # -fleading-underscore -flifetime-dse -flra-remat -flto-odr-type-merging
 # -fmath-errno -fmerge-constants -fmerge-debug-strings
 # -fmove-loop-invariants -fomit-frame-pointer -foptimize-sibling-calls
 # -foptimize-strlen -fpartial-inlining -fpcc-struct-return -fpeephole
 # -fpeephole2 -fplt -fprefetch-loop-arrays -free -freorder-blocks
 # -freorder-functions -frerun-cse-after-loop
 # -fsched-critical-path-heuristic -fsched-dep-count-heuristic
 # -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic
 # -fsched-rank-heuristic -fsched-spec -fsched-spec-insn-heuristic
 # -fsched-stalled-insns-dep -fschedule-fusion -fschedule-insns
 # -fschedule-insns2 -fsemantic-interposition -fshow-column -fshrink-wrap
 # -fshrink-wrap-separate -fsigned-zeros -fsplit-ivs-in-unroller
 # -fsplit-wide-types -fssa-backprop -fssa-phiopt -fstdarg-opt
 # -fstore-merging -fstrict-volatile-bitfields -fsync-libcalls
 # -fthread-jumps -ftoplevel-reorder -ftrapping-math -ftree-bit-ccp
 # -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-coalesce-vars
 # -ftree-copy-prop -ftree-cselim -ftree-dce -ftree-dominator-opts
 # -ftree-dse -ftree-forwprop -ftree-fre -ftree-loop-if-convert
 # -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
 # -ftree-parallelize-loops= -ftree-phiprop -ftree-pre -ftree-pta
 # -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-slsr -ftree-sra
 # -ftree-switch-conversion -ftree-tail-merge -ftree-ter -ftree-vrp
 # -funit-at-a-time -funwind-tables -fverbose-asm -fwrapv -fwrapv-pointer
 # -fzero-initialized-in-bss -mexplicit-relocs -mfloat-ieee -mglibc
 # -mlarge-data -mlarge-text -mlong-double-64 -msoft-float

	.text
	.align 2
	.align 4
	.globl iterate_dir
	.ent iterate_dir
iterate_dir:
	.frame $30,64,$26,0
	.mask 0x400fe00,-64
$LFB3537:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!1	 #,,
	lda $29,0($29)		!gpdisp!1	 #,,
$iterate_dir..ng:
	lda $30,-64($30)	 #,,
	.cfi_def_cfa_offset 64
	bis $31,$31,$31
	stq $9,8($30)	 #,
	.cfi_offset 9, -56
	mov $16,$9	 # tmp144, file
	stq $11,24($30)	 #,
	.cfi_offset 11, -40
	mov $17,$11	 # tmp145, ctx
	stq $26,0($30)	 #,
	stq $10,16($30)	 #,
	stq $12,32($30)	 #,
	stq $13,40($30)	 #,
	stq $14,48($30)	 #,
	stq $15,56($30)	 #,
	.cfi_offset 26, -64
	.cfi_offset 10, -48
	.cfi_offset 12, -32
	.cfi_offset 13, -24
	.cfi_offset 14, -16
	.cfi_offset 15, -8
	.prologue 1
 # fs/readdir.c:85: 	if (file->f_op->iterate_shared)
	ldq $1,40($16)	 # file_23(D)->f_op, _1
 # ./include/linux/fs.h:1318: 	return f->f_inode;
	ldq $12,32($16)	 # MEM[(const struct file *)file_23(D)].f_inode, _26
 # fs/readdir.c:85: 	if (file->f_op->iterate_shared)
	ldq $2,64($1)	 # _1->iterate_shared, _1->iterate_shared
	beq $2,$L20	 #, _1->iterate_shared,
 # fs/readdir.c:95: 		res = down_read_killable(&inode->i_rwsem);
	lda $13,160($12)	 # pretmp_38,, _26
	ldq $27,down_read_killable($29)		!literal!14	 #,,,
	mov $13,$16	 # pretmp_38,
 # fs/readdir.c:86: 		shared = true;
	lda $14,1($31)	 # shared,
 # fs/readdir.c:95: 		res = down_read_killable(&inode->i_rwsem);
	jsr $26,($27),down_read_killable		!lituse_jsr!14	 #,,
	ldah $29,0($26)		!gpdisp!15	 #
	lda $29,0($29)		!gpdisp!15	 #,,
	mov $0,$10	 # tmp146, <retval>
$L5:
 # fs/readdir.c:98: 	if (res)
	ldq_u $31,0($30)
	bne $10,$L3	 #, <retval>,
 # fs/readdir.c:102: 	if (!IS_DEADDIR(inode)) {
	ldl $1,12($12)	 #, _26->i_flags
 # fs/readdir.c:101: 	res = -ENOENT;
	lda $10,-2($31)	 # <retval>,
 # fs/readdir.c:102: 	if (!IS_DEADDIR(inode)) {
	and $1,16,$1	 # _26->i_flags,, tmp112
	bne $1,$L6	 #, tmp112,
 # fs/readdir.c:103: 		ctx->pos = file->f_pos;
	ldq $1,152($9)	 # file_23(D)->f_pos, _8
 # fs/readdir.c:105: 			res = file->f_op->iterate_shared(file, ctx);
	mov $11,$17	 # ctx,
	mov $9,$16	 # file,
 # fs/readdir.c:103: 		ctx->pos = file->f_pos;
	stq $1,8($11)	 # ctx_31(D)->pos, _8
 # fs/readdir.c:105: 			res = file->f_op->iterate_shared(file, ctx);
	ldq $1,40($9)	 # file_23(D)->f_op, file_23(D)->f_op
 # fs/readdir.c:104: 		if (shared)
	bne $14,$L21	 #, shared,
 # fs/readdir.c:107: 			res = file->f_op->iterate(file, ctx);
	ldq $27,56($1)	 # _11->iterate, _11->iterate
	jsr $26,($27),0	 # _11->iterate
	ldah $29,0($26)		!gpdisp!16
	lda $29,0($29)		!gpdisp!16
	mov $0,$10	 # tmp149, <retval>
	bis $31,$31,$31
$L8:
 # fs/readdir.c:108: 		file->f_pos = ctx->pos;
	ldq $1,8($11)	 # ctx_31(D)->pos, _13
 # ./include/linux/fs.h:1318: 	return f->f_inode;
	ldq $12,32($9)	 # MEM[(const struct file *)file_23(D)].f_inode, _47
 # ./include/linux/fsnotify.h:239: 	if (!(file->f_mode & FMODE_NONOTIFY))
	ldl $2,92($9)	 #, file_23(D)->f_mode
 # ./include/linux/fsnotify.h:237: 		mask |= FS_ISDIR;
	ldah $18,16384($31)	 # tmp100,
 # fs/readdir.c:108: 		file->f_pos = ctx->pos;
	stq $1,152($9)	 # file_23(D)->f_pos, _13
 # ./include/linux/fsnotify.h:237: 		mask |= FS_ISDIR;
	lda $18,1($18)	 # tmp143,, tmp100
 # ./include/linux/fsnotify.h:236: 	if (S_ISDIR(inode->i_mode))
	ldl $1,0($12)	 #,* _47
 # ./include/linux/fsnotify.h:237: 		mask |= FS_ISDIR;
	lda $11,1($31)	 # mask,
 # ./include/linux/fsnotify.h:239: 	if (!(file->f_mode & FMODE_NONOTIFY))
	srl $2,26,$2	 # file_23(D)->f_mode,, tmp131
 # ./include/linux/fsnotify.h:232: 	const struct path *path = &file->f_path;
	lda $15,16($9)	 # path,, file
 # ./include/linux/fsnotify.h:236: 	if (S_ISDIR(inode->i_mode))
	extwl $1,0,$3	 #, tmp122,, tmp121
	lda $1,-4096($31)	 # tmp124,
	and $1,$3,$1	 # tmp124, tmp121, tmp125
	lda $1,-16384($1)	 # tmp126,, tmp125
 # ./include/linux/fsnotify.h:237: 		mask |= FS_ISDIR;
	cmoveq $1,$18,$11	 #, tmp126, tmp143, mask
 # ./include/linux/fsnotify.h:239: 	if (!(file->f_mode & FMODE_NONOTIFY))
	blbc $2,$L22	 # tmp131,
$L11:
 # ./include/linux/fs.h:2201: 	if (!(file->f_flags & O_NOATIME))
	ldl $1,88($9)	 #, file_23(D)->f_flags
 # ./include/linux/fs.h:2201: 	if (!(file->f_flags & O_NOATIME))
	srl $1,20,$1	 # file_23(D)->f_flags,, tmp139
	ldq_u $31,0($30)
	blbs $1,$L6	 # tmp139,
 # ./include/linux/fs.h:2202: 		touch_atime(&file->f_path);
	ldq $27,touch_atime($29)		!literal!6	 #,,,
	mov $15,$16	 # path,
	jsr $26,($27),touch_atime		!lituse_jsr!6	 #,,
	ldah $29,0($26)		!gpdisp!7	 #
	lda $29,0($29)		!gpdisp!7	 #,,
	.align 4
$L6:
 # ./include/linux/fs.h:806: 	up_read(&inode->i_rwsem);
	mov $13,$16	 # pretmp_38,
 # fs/readdir.c:112: 	if (shared)
	beq $14,$L13	 #, shared,
 # ./include/linux/fs.h:806: 	up_read(&inode->i_rwsem);
	ldq $27,up_read($29)		!literal!4	 #,,,
	jsr $26,($27),up_read		!lituse_jsr!4	 #,,
	ldah $29,0($26)		!gpdisp!5	 #
	lda $29,0($29)		!gpdisp!5	 #,,
$L3:
 # fs/readdir.c:118: }
	mov $10,$0	 # <retval>,
	ldq $26,0($30)	 #,
	ldq $9,8($30)	 #,
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	ldq $12,32($30)	 #,
	ldq $13,40($30)	 #,
	ldq $14,48($30)	 #,
	ldq $15,56($30)	 #,
	bis $31,$31,$31
	lda $30,64($30)	 #,,
	.cfi_remember_state
	.cfi_restore 15
	.cfi_restore 14
	.cfi_restore 13
	.cfi_restore 12
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L13:
	.cfi_restore_state
 # ./include/linux/fs.h:796: 	up_write(&inode->i_rwsem);
	ldq $27,up_write($29)		!literal!2	 #,,,
	bis $31,$31,$31
	jsr $26,($27),up_write		!lituse_jsr!2	 #,,
	ldah $29,0($26)		!gpdisp!3	 #
	lda $29,0($29)		!gpdisp!3	 #,,
 # ./include/linux/fs.h:797: }
	br $31,$L3	 #
	.align 4
$L20:
 # fs/readdir.c:87: 	else if (!file->f_op->iterate)
	ldq $1,56($1)	 # _1->iterate, _1->iterate
 # fs/readdir.c:84: 	int res = -ENOTDIR;
	lda $10,-20($31)	 # <retval>,
 # fs/readdir.c:87: 	else if (!file->f_op->iterate)
	ldq_u $31,0($30)
	beq $1,$L3	 #, _1->iterate,
 # fs/readdir.c:97: 		res = down_write_killable(&inode->i_rwsem);
	lda $13,160($12)	 # pretmp_38,, _26
	ldq $27,down_write_killable($29)		!literal!12	 #,,,
	mov $13,$16	 # pretmp_38,
 # fs/readdir.c:83: 	bool shared = false;
	mov $31,$14	 #, shared
 # fs/readdir.c:97: 		res = down_write_killable(&inode->i_rwsem);
	jsr $26,($27),down_write_killable		!lituse_jsr!12	 #,,
	ldah $29,0($26)		!gpdisp!13	 #
	lda $29,0($29)		!gpdisp!13	 #,,
	mov $0,$10	 # tmp147, <retval>
	br $31,$L5	 #
	.align 4
$L21:
 # fs/readdir.c:105: 			res = file->f_op->iterate_shared(file, ctx);
	ldq $27,64($1)	 # _9->iterate_shared, _9->iterate_shared
	jsr $26,($27),0	 # _9->iterate_shared
	ldah $29,0($26)		!gpdisp!17
	lda $29,0($29)		!gpdisp!17
	mov $0,$10	 # tmp148, <retval>
	br $31,$L8	 #
	.align 4
$L22:
 # ./include/linux/fsnotify.h:40: 	return __fsnotify_parent(path, dentry, mask);
	ldq $17,24($9)	 # MEM[(const struct path *)file_23(D) + 16B].dentry,
	ldq $27,__fsnotify_parent($29)		!literal!10	 #,,,
	mov $11,$18	 # mask,
	mov $15,$16	 # path,
	jsr $26,($27),__fsnotify_parent		!lituse_jsr!10	 #,,
	ldah $29,0($26)		!gpdisp!11	 #
	lda $29,0($29)		!gpdisp!11	 #,,
 # ./include/linux/fsnotify.h:52: 	if (ret)
	bne $0,$L11	 #, tmp150,
 # ./include/linux/fsnotify.h:54: 	return fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
	ldq $27,fsnotify($29)		!literal!8	 #,,,
	mov $31,$21	 #,
	mov $31,$20	 #,
	lda $19,1($31)	 #,
	mov $15,$18	 # path,
	mov $11,$17	 # mask,
	mov $12,$16	 # _47,
	jsr $26,($27),fsnotify		!lituse_jsr!8	 #,,
	ldah $29,0($26)		!gpdisp!9	 #
	lda $29,0($29)		!gpdisp!9	 #,,
	br $31,$L11	 #
	.cfi_endproc
$LFE3537:
	.end iterate_dir
	.align 2
	.align 4
	.ent fillonedir
fillonedir:
	.frame $30,48,$26,0
	.mask 0x4001e00,-48
$LFB3539:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!18	 #,,
	lda $29,0($29)		!gpdisp!18	 #,,
$fillonedir..ng:
	lda $30,-48($30)	 #,,
	.cfi_def_cfa_offset 48
	bis $31,$31,$31
	stq $11,24($30)	 #,
	.cfi_offset 11, -24
	mov $16,$11	 # tmp141, ctx
	stq $12,32($30)	 #,
	.cfi_offset 12, -16
	mov $18,$12	 # namlen, tmp142
	stq $26,0($30)	 #,
	stq $9,8($30)	 #,
	stq $10,16($30)	 #,
	.cfi_offset 26, -48
	.cfi_offset 9, -40
	.cfi_offset 10, -32
	.prologue 1
 # fs/readdir.c:187: 	if (buf->result)
	ldl $10,24($16)	 # <retval>, MEM[(struct readdir_callback *)ctx_33(D)].result
 # fs/readdir.c:187: 	if (buf->result)
	bne $10,$L27	 #, <retval>,
 # fs/readdir.c:195: 	dirent = buf->dirent;
	ldq $2,16($16)	 # MEM[(struct readdir_callback *)ctx_33(D)].dirent, dirent
 # fs/readdir.c:196: 	if (!access_ok(dirent,
	lda $1,1($18)	 # tmp113,, namlen
 # fs/readdir.c:194: 	buf->result++;
	lda $3,1($31)	 # tmp112,
	stl $3,24($16)	 # tmp112, MEM[(struct readdir_callback *)ctx_33(D)].result
 # fs/readdir.c:196: 	if (!access_ok(dirent,
	lda $9,18($2)	 # _2,, dirent
	addq $9,$1,$1	 # _2, tmp113, _6
	ldq $4,80($8)	 # __current_thread_info.3_9->addr_limit.seg, __current_thread_info.3_9->addr_limit.seg
	subq $1,$2,$3	 # _6, dirent, __ao_b
	cmpult $31,$3,$5	 # __ao_b, tmp115
	bis $2,$3,$3	 # dirent, __ao_b, tmp117
	subq $1,$5,$1	 # _6, tmp115, __ao_end
	bis $1,$3,$1	 # __ao_end, tmp117, tmp118
	and $1,$4,$1	 # tmp118, __current_thread_info.3_9->addr_limit.seg, tmp119
 # fs/readdir.c:196: 	if (!access_ok(dirent,
	bne $1,$L26	 #, tmp119,
 # fs/readdir.c:200: 	if (	__put_user(d_ino, &dirent->d_ino) ||
	mov $10,$1	 # <retval>, __pu_err
	.set	macro
 # 200 "fs/readdir.c" 1
	1: stq $20,0($2)	 # ino, MEM[(struct __large_struct *)_16]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($1)	 # __pu_err
.previous

 # 0 "" 2
 # fs/readdir.c:200: 	if (	__put_user(d_ino, &dirent->d_ino) ||
	.set	nomacro
	bne $1,$L26	 #, __pu_err,
 # fs/readdir.c:201: 		__put_user(offset, &dirent->d_offset) ||
	mov $10,$1	 # <retval>, __pu_err
	.set	macro
 # 201 "fs/readdir.c" 1
	1: stq $19,8($2)	 # offset, MEM[(struct __large_struct *)_19]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($1)	 # __pu_err
.previous

 # 0 "" 2
 # fs/readdir.c:200: 	if (	__put_user(d_ino, &dirent->d_ino) ||
	.set	nomacro
	bne $1,$L26	 #, __pu_err,
 # fs/readdir.c:202: 		__put_user(namlen, &dirent->d_namlen) ||
	.align 3 #realign	 #
	lda $2,16($2)	 # tmp131,, dirent
	mov $10,$1	 # <retval>, __pu_err
	zapnot $18,3,$3	 # namlen, namlen
	.set	macro
 # 202 "fs/readdir.c" 1
	1:	ldq_u $5,1($2)	 # __pu_tmp2, tmp131
2:	ldq_u $4,0($2)	 # __pu_tmp1, tmp131
	inswh $3,$2,$7	 # namlen, tmp131, __pu_tmp4
	inswl $3,$2,$6	 # namlen, tmp131, __pu_tmp3
	mskwh $5,$2,$5	 # __pu_tmp2, tmp131
	mskwl $4,$2,$4	 # __pu_tmp1, tmp131
	or $5,$7,$5	 # __pu_tmp2, __pu_tmp4
	or $4,$6,$4	 # __pu_tmp1, __pu_tmp3
3:	stq_u $5,1($2)	 # __pu_tmp2, tmp131
4:	stq_u $4,0($2)	 # __pu_tmp1, tmp131
5:
.section __ex_table,"a"
	.long 1b-.
	lda $31,5b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,5b-2b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 3b-.
	lda $31,5b-3b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 4b-.
	lda $31,5b-4b($1)	 # __pu_err
.previous

 # 0 "" 2
 # fs/readdir.c:201: 		__put_user(offset, &dirent->d_offset) ||
	.set	nomacro
	bne $1,$L26	 #, __pu_err,
 # ./arch/alpha/include/asm/uaccess.h:314: 	return __copy_user((__force void *)to, from, len);
	.align 3 #realign	 #
	ldq $27,__copy_user($29)		!literal!19	 #,,,
	mov $9,$16	 # _2,
	jsr $26,($27),__copy_user		!lituse_jsr!19	 #,,
	ldah $29,0($26)		!gpdisp!20	 #
	lda $29,0($29)		!gpdisp!20	 #,,
 # fs/readdir.c:202: 		__put_user(namlen, &dirent->d_namlen) ||
	bne $0,$L26	 #, tmp145,
 # fs/readdir.c:204: 		__put_user(0, dirent->d_name + namlen))
	addq $9,$12,$9	 # _2, namlen, tmp138
	mov $10,$1	 # <retval>, __pu_err
	.set	macro
 # 204 "fs/readdir.c" 1
	1:	ldq_u $2,0($9)	 # __pu_tmp1, tmp138
	insbl $10,$9,$3	 # __pu_err, tmp138, __pu_tmp2
	mskbl $2,$9,$2	 # __pu_tmp1, tmp138
	or $2,$3,$2	 # __pu_tmp1, __pu_tmp2
2:	stq_u $2,0($9)	 # __pu_tmp1, tmp138
3:
.section __ex_table,"a"
	.long 1b-.
	lda $31,3b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,3b-2b($1)	 # __pu_err
.previous

 # 0 "" 2
 # fs/readdir.c:203: 		__copy_to_user(dirent->d_name, name, namlen) ||
	.set	nomacro
	bne $1,$L26	 #, __pu_err,
	.align 3 #realign	 #
$L24:
 # fs/readdir.c:210: }
	mov $10,$0	 # <retval>,
	ldq $26,0($30)	 #,
	ldq $9,8($30)	 #,
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	ldq $12,32($30)	 #,
	lda $30,48($30)	 #,,
	.cfi_remember_state
	.cfi_restore 12
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L26:
	.cfi_restore_state
 # fs/readdir.c:208: 	buf->result = -EFAULT;
	lda $1,-14($31)	 # tmp121,
 # fs/readdir.c:209: 	return -EFAULT;
	lda $10,-14($31)	 # <retval>,
 # fs/readdir.c:208: 	buf->result = -EFAULT;
	stl $1,24($11)	 # tmp121, MEM[(struct readdir_callback *)ctx_33(D)].result
 # fs/readdir.c:209: 	return -EFAULT;
	br $31,$L24	 #
	.align 4
$L27:
 # fs/readdir.c:188: 		return -EINVAL;
	lda $10,-22($31)	 # <retval>,
	br $31,$L24	 #
	.cfi_endproc
$LFE3539:
	.end fillonedir
	.section	.rodata.str1.1,"aMS",@progbits,1
$LC0:
	.string	"fs/readdir.c"
	.text
	.align 2
	.align 4
	.ent verify_dirent_name
verify_dirent_name:
	.frame $30,32,$26,0
	.mask 0x4000000,-32
$LFB3538:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!21	 #,,
	lda $29,0($29)		!gpdisp!21	 #,,
$verify_dirent_name..ng:
	lda $30,-32($30)	 #,,
	.cfi_def_cfa_offset 32
	mov $17,$18	 # tmp106, len
	stq $26,0($30)	 #,
	.cfi_offset 26, -32
	.prologue 1
 # fs/readdir.c:148: 	if (WARN_ON_ONCE(!len))
	beq $17,$L36	 #, len,
 # fs/readdir.c:150: 	if (WARN_ON_ONCE(memchr(name, '/', len)))
	ldq $27,memchr($29)		!literal!22	 #,,,
	lda $17,47($31)	 #,
	jsr $26,($27),memchr		!lituse_jsr!22	 #,,
	ldah $29,0($26)		!gpdisp!23	 #
	lda $29,0($29)		!gpdisp!23	 #,,
	bne $0,$L31	 #, tmp107,
$L34:
 # fs/readdir.c:153: }
	ldq $26,0($30)	 #,
	lda $30,32($30)	 #,,
	.cfi_remember_state
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L36:
	.cfi_restore_state
 # fs/readdir.c:148: 	if (WARN_ON_ONCE(!len))
	ldah $1,__warned.38909($29)		!gprelhigh	 # tmp77,,
 # fs/readdir.c:149: 		return -EIO;
	lda $0,-5($31)	 # <retval>,
 # fs/readdir.c:148: 	if (WARN_ON_ONCE(!len))
	ldq_u $2,__warned.38909($1)		!gprellow	 #, tmp81
	lda $3,__warned.38909($1)		!gprellow	 # tmp82,, tmp77
	extbl $2,$3,$4	 #, tmp81, tmp82, tmp78
	bne $4,$L34	 #, tmp78,
 # fs/readdir.c:148: 	if (WARN_ON_ONCE(!len))
	lda $4,1($31)	 # tmp84,
	mov $31,$19	 #,
	mskbl $2,$3,$2	 #, tmp81, tmp82, tmp86
	lda $18,9($31)	 #,
	insbl $4,$3,$3	 # tmp84, tmp82, tmp87
	lda $17,148($31)	 #,
	bis $3,$2,$3	 # tmp87, tmp86, tmp87
	stq_u $3,__warned.38909($1)		!gprellow	 #, tmp87
$L35:
 # fs/readdir.c:150: 	if (WARN_ON_ONCE(memchr(name, '/', len)))
	ldah $16,$LC0($29)		!gprelhigh	 # tmp102,,
	ldq $27,warn_slowpath_fmt($29)		!literal!24	 #,,,
	stq $0,16($30)	 #,
	lda $16,$LC0($16)		!gprellow	 #,, tmp102
	jsr $26,($27),warn_slowpath_fmt		!lituse_jsr!24	 #,,
	ldah $29,0($26)		!gpdisp!25	 #
	lda $29,0($29)		!gpdisp!25	 #,,
	ldq $0,16($30)	 #,
	br $31,$L34	 #
	.align 4
$L31:
 # fs/readdir.c:150: 	if (WARN_ON_ONCE(memchr(name, '/', len)))
	ldah $1,__warned.38914($29)		!gprelhigh	 # tmp90,,
 # fs/readdir.c:149: 		return -EIO;
	lda $0,-5($31)	 # <retval>,
 # fs/readdir.c:150: 	if (WARN_ON_ONCE(memchr(name, '/', len)))
	ldq_u $2,__warned.38914($1)		!gprellow	 #, tmp94
	lda $3,__warned.38914($1)		!gprellow	 # tmp95,, tmp90
	extbl $2,$3,$4	 #, tmp94, tmp95, tmp91
	bne $4,$L34	 #, tmp91,
 # fs/readdir.c:150: 	if (WARN_ON_ONCE(memchr(name, '/', len)))
	lda $4,1($31)	 # tmp97,
	mov $31,$19	 #,
	mskbl $2,$3,$2	 #, tmp94, tmp95, tmp99
	lda $18,9($31)	 #,
	insbl $4,$3,$3	 # tmp97, tmp95, tmp100
	lda $17,150($31)	 #,
	bis $3,$2,$3	 # tmp100, tmp99, tmp100
	stq_u $3,__warned.38914($1)		!gprellow	 #, tmp100
	br $31,$L35	 #
	.cfi_endproc
$LFE3538:
	.end verify_dirent_name
	.align 2
	.align 4
	.ent filldir
filldir:
	.frame $30,64,$26,0
	.mask 0x400fe00,-64
$LFB3542:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!26	 #,,
	lda $29,0($29)		!gpdisp!26	 #,,
$filldir..ng:
	lda $30,-64($30)	 #,,
	.cfi_def_cfa_offset 64
	bis $31,$31,$31
	stq $9,8($30)	 #,
	.cfi_offset 9, -56
	mov $17,$9	 # tmp243, name
	stq $13,40($30)	 #,
	.cfi_offset 13, -24
 # fs/readdir.c:261: 	int reclen = ALIGN(offsetof(struct linux_dirent, d_name) + namlen + 2,
	addl $18,27,$13	 # namlen,, tmp143
 # fs/readdir.c:256: {
	stq $11,24($30)	 #,
 # fs/readdir.c:261: 	int reclen = ALIGN(offsetof(struct linux_dirent, d_name) + namlen + 2,
	bic $13,7,$13	 # tmp143,, tmp144
	.cfi_offset 11, -40
 # fs/readdir.c:256: {
	mov $16,$11	 # ctx, tmp242
 # fs/readdir.c:264: 	buf->error = verify_dirent_name(name, namlen);
	mov $18,$17	 # namlen,
	mov $9,$16	 # name,
 # fs/readdir.c:261: 	int reclen = ALIGN(offsetof(struct linux_dirent, d_name) + namlen + 2,
	addl $31,$13,$13	 # tmp144, reclen
 # fs/readdir.c:256: {
	stq $10,16($30)	 #,
	.cfi_offset 10, -48
	mov $18,$10	 # tmp244, namlen
	stq $12,32($30)	 #,
	.cfi_offset 12, -32
	mov $21,$12	 # tmp247, d_type
	stq $14,48($30)	 #,
	.cfi_offset 14, -16
	mov $20,$14	 # tmp246, ino
	stq $15,56($30)	 #,
	.cfi_offset 15, -8
	mov $19,$15	 # tmp245, offset
	stq $26,0($30)	 #,
	.cfi_offset 26, -64
	.prologue 1
 # fs/readdir.c:264: 	buf->error = verify_dirent_name(name, namlen);
	ldq $27,verify_dirent_name($29)		!literal!27	 #
	jsr $26,($27),0		!lituse_jsr!27
	ldah $29,0($26)		!gpdisp!28
	lda $29,0($29)		!gpdisp!28
 # fs/readdir.c:265: 	if (unlikely(buf->error))
	bne $0,$L60	 #, <retval>,
 # fs/readdir.c:267: 	buf->error = -EINVAL;	/* only used if we fail.. */
	lda $1,-22($31)	 # tmp147,
 # fs/readdir.c:268: 	if (reclen > buf->count)
	ldl $5,32($11)	 # _8, MEM[(struct getdents_callback *)ctx_55(D)].count
 # fs/readdir.c:267: 	buf->error = -EINVAL;	/* only used if we fail.. */
	stl $1,36($11)	 # tmp147, MEM[(struct getdents_callback *)ctx_55(D)].error
 # fs/readdir.c:268: 	if (reclen > buf->count)
	bis $31,$31,$31
	cmplt $5,$13,$1	 #, _8, reclen, tmp148
	bne $1,$L51	 #, tmp148,
 # fs/readdir.c:275: 	dirent = buf->previous;
	ldq $2,24($11)	 # MEM[(struct getdents_callback *)ctx_55(D)].previous, dirent
 # fs/readdir.c:276: 	if (dirent && signal_pending(current))
	beq $2,$L40	 #, dirent,
 # ./include/linux/sched.h:1737: 	return test_ti_thread_flag(task_thread_info(tsk), flag);
	ldq $1,64($8)	 # __current_thread_info.16_9->task, __current_thread_info.16_9->task
 # ./arch/alpha/include/asm/bitops.h:289: 	return (1UL & (((const int *) addr)[nr >> 5] >> (nr & 31))) != 0UL;
	ldq $1,8($1)	 # _10->stack, _10->stack
 # ./arch/alpha/include/asm/bitops.h:289: 	return (1UL & (((const int *) addr)[nr >> 5] >> (nr & 31))) != 0UL;
	ldl $1,72($1)	 # MEM[(const int *)_118 + 72B], MEM[(const int *)_118 + 72B]
 # fs/readdir.c:276: 	if (dirent && signal_pending(current))
	and $1,4,$1	 # MEM[(const int *)_118 + 72B],, tmp154
	cmpult $31,$1,$1	 # tmp154, tmp154
	bne $1,$L61	 #, tmp154,
 # fs/readdir.c:283: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	lda $1,23($2)	 # __ao_end,, dirent
	ldq $3,80($8)	 # __current_thread_info.16_9->addr_limit.seg, __current_thread_info.16_9->addr_limit.seg
	bis $1,$2,$1	 # __ao_end, dirent, tmp236
	bis $1,24,$1	 # tmp236,, tmp237
	and $1,$3,$1	 # tmp237, __current_thread_info.16_9->addr_limit.seg, tmp238
 # fs/readdir.c:283: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	bne $1,$L48	 #, tmp238,
 # fs/readdir.c:286: 		unsafe_put_user(offset, &dirent->d_off, efault_end);
	mov $0,$1	 # <retval>, __pu_err
	.set	macro
 # 286 "fs/readdir.c" 1
	1: stq $15,8($2)	 # offset, MEM[(struct __large_struct *)_19]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L48	 #, __pu_err,
	.align 3 #realign	 #
$L50:
 # fs/readdir.c:287: 	dirent = buf->current_dir;
	ldq $6,16($11)	 # MEM[(struct getdents_callback *)ctx_55(D)].current_dir, dirent
 # fs/readdir.c:288: 	unsafe_put_user(d_ino, &dirent->d_ino, efault_end);
	mov $31,$1	 #, __pu_err
	.set	macro
 # 288 "fs/readdir.c" 1
	1: stq $14,0($6)	 # ino, MEM[(struct __large_struct *)_25]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L48	 #, __pu_err,
 # fs/readdir.c:289: 	unsafe_put_user(reclen, &dirent->d_reclen, efault_end);
	.align 3 #realign	 #
	zapnot $13,3,$3	 # reclen, reclen
	lda $2,16($6)	 # tmp166,, dirent
	.set	macro
 # 289 "fs/readdir.c" 1
	1:	ldq_u $7,1($2)	 # __pu_tmp2, tmp166
2:	ldq_u $4,0($2)	 # __pu_tmp1, tmp166
	inswh $3,$2,$23	 # reclen, tmp166, __pu_tmp4
	inswl $3,$2,$22	 # reclen, tmp166, __pu_tmp3
	mskwh $7,$2,$7	 # __pu_tmp2, tmp166
	mskwl $4,$2,$4	 # __pu_tmp1, tmp166
	or $7,$23,$7	 # __pu_tmp2, __pu_tmp4
	or $4,$22,$4	 # __pu_tmp1, __pu_tmp3
3:	stq_u $7,1($2)	 # __pu_tmp2, tmp166
4:	stq_u $4,0($2)	 # __pu_tmp1, tmp166
5:
.section __ex_table,"a"
	.long 1b-.
	lda $31,5b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,5b-2b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 3b-.
	lda $31,5b-3b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 4b-.
	lda $31,5b-4b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L48	 #, __pu_err,
 # fs/readdir.c:290: 	unsafe_put_user(d_type, (char __user *) dirent + reclen - 1, efault_end);
	.align 3 #realign	 #
	sll $12,56,$12	 # d_type,, tmp175
	lda $2,-1($13)	 # tmp176,, reclen
	sra $12,56,$12	 # tmp175,, tmp173
	addq $6,$2,$2	 # dirent, tmp176, tmp177
	.set	macro
 # 290 "fs/readdir.c" 1
	1:	ldq_u $3,0($2)	 # __pu_tmp1, tmp177
	insbl $12,$2,$4	 # tmp173, tmp177, __pu_tmp2
	mskbl $3,$2,$3	 # __pu_tmp1, tmp177
	or $3,$4,$3	 # __pu_tmp1, __pu_tmp2
2:	stq_u $3,0($2)	 # __pu_tmp1, tmp177
3:
.section __ex_table,"a"
	.long 1b-.
	lda $31,3b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,3b-2b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L48	 #, __pu_err,
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.align 3 #realign	 #
	mov $10,$18	 # namlen, len
	lda $2,18($6)	 # dst,, dirent
	cmpule $10,7,$1	 #, len,, tmp179
	bne $1,$L43	 #, tmp179,
	mov $31,$7	 #, tmp187
	br $31,$L44	 #
	.align 4
$L62:
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	lda $2,8($2)	 # dst,, dst
	lda $9,8($9)	 # name,, name
	cmpule $18,7,$1	 #, len,, tmp188
	bne $1,$L43	 #, tmp188,
$L44:
 # ./include/linux/unaligned/packed_struct.h:25: 	return ptr->x;
	ldq_u $1,0($9)	 #, tmp182
	ldq_u $4,7($9)	 #, tmp183
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $7,$3	 # tmp187, __pu_err
 # ./include/linux/unaligned/packed_struct.h:25: 	return ptr->x;
	extql $1,$9,$1	 #, tmp182, name, tmp185
	extqh $4,$9,$4	 # tmp183, name, tmp186
	bis $1,$4,$1	 # tmp185, tmp186, tmp181
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.set	macro
 # 291 "fs/readdir.c" 1
	1: stq $1,0($2)	 # tmp181, MEM[(struct __large_struct *)dst_154]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($3)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	.align 3 #realign	 #
	lda $18,-8($18)	 # len,, len
	beq $3,$L62	 #, __pu_err,
$L42:
$L48:
 # fs/readdir.c:302: 	buf->error = -EFAULT;
	lda $1,-14($31)	 # tmp233,
 # fs/readdir.c:303: 	return -EFAULT;
	lda $0,-14($31)	 # <retval>,
 # fs/readdir.c:302: 	buf->error = -EFAULT;
	stl $1,36($11)	 # tmp233, MEM[(struct getdents_callback *)ctx_55(D)].error
	bis $31,$31,$31
$L57:
 # fs/readdir.c:304: }
	ldq $26,0($30)	 #,
	ldq $9,8($30)	 #,
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	ldq $12,32($30)	 #,
	ldq $13,40($30)	 #,
	ldq $14,48($30)	 #,
	ldq $15,56($30)	 #,
	lda $30,64($30)	 #,,
	.cfi_remember_state
	.cfi_restore 15
	.cfi_restore 14
	.cfi_restore 13
	.cfi_restore 12
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L40:
	.cfi_restore_state
 # fs/readdir.c:283: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	ldq $1,80($8)	 # __current_thread_info.17_165->addr_limit.seg, __current_thread_info.17_165->addr_limit.seg
	and $1,31,$1	 # __current_thread_info.17_165->addr_limit.seg,, tmp240
 # fs/readdir.c:283: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	beq $1,$L50	 #, tmp240,
	br $31,$L48	 #
	.align 4
$L43:
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	cmpule $18,3,$1	 #, len,, tmp189
	bne $1,$L45	 #, tmp189,
 # ./include/linux/unaligned/packed_struct.h:19: 	return ptr->x;
	ldq_u $1,0($9)	 #, tmp192
	ldq_u $4,3($9)	 #, tmp193
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $31,$3	 #, __pu_err
 # ./include/linux/unaligned/packed_struct.h:19: 	return ptr->x;
	extll $1,$9,$1	 #, tmp192, name, tmp195
	extlh $4,$9,$4	 # tmp193, name, tmp196
	bis $1,$4,$1	 # tmp195, tmp196, tmp191
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.set	macro
 # 291 "fs/readdir.c" 1
	1: stl $1,0($2)	 # tmp191, MEM[(struct __large_struct *)dst_147]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($3)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $3,$L48	 #, __pu_err,
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.align 3 #realign	 #
	lda $2,4($2)	 # dst,, dst
	lda $9,4($9)	 # name,, name
	lda $18,-4($18)	 # len,, len
	bis $31,$31,$31
$L45:
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	cmpule $18,1,$1	 #, len,, tmp201
	bne $1,$L46	 #, tmp201,
 # ./include/linux/unaligned/packed_struct.h:13: 	return ptr->x;
	ldq_u $1,0($9)	 #, tmp208
	ldq_u $4,1($9)	 #, tmp209
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $31,$3	 #, __pu_err
 # ./include/linux/unaligned/packed_struct.h:13: 	return ptr->x;
	extwl $1,$9,$1	 #, tmp208, name, tmp211
	extwh $4,$9,$4	 # tmp209, name, tmp212
	bis $1,$4,$1	 # tmp211, tmp212, tmp207
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	zapnot $1,3,$1	 # tmp207, tmp216
	.set	macro
 # 291 "fs/readdir.c" 1
	1:	ldq_u $7,1($2)	 # __pu_tmp2, dst
2:	ldq_u $4,0($2)	 # __pu_tmp1, dst
	inswh $1,$2,$23	 # tmp216, dst, __pu_tmp4
	inswl $1,$2,$22	 # tmp216, dst, __pu_tmp3
	mskwh $7,$2,$7	 # __pu_tmp2, dst
	mskwl $4,$2,$4	 # __pu_tmp1, dst
	or $7,$23,$7	 # __pu_tmp2, __pu_tmp4
	or $4,$22,$4	 # __pu_tmp1, __pu_tmp3
3:	stq_u $7,1($2)	 # __pu_tmp2, dst
4:	stq_u $4,0($2)	 # __pu_tmp1, dst
5:
.section __ex_table,"a"
	.long 1b-.
	lda $31,5b-1b($3)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,5b-2b($3)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 3b-.
	lda $31,5b-3b($3)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 4b-.
	lda $31,5b-4b($3)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $3,$L48	 #, __pu_err,
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.align 3 #realign	 #
	lda $2,2($2)	 # dst,, dst
	lda $9,2($9)	 # name,, name
	lda $18,-2($18)	 # len,, len
$L46:
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	beq $18,$L47	 #, len,
	ldq_u $3,0($9)	 #, tmp223
	mov $31,$1	 #, __pu_err
	extbl $3,$9,$9	 #, tmp223, name, tmp221
	.set	macro
 # 291 "fs/readdir.c" 1
	1:	ldq_u $3,0($2)	 # __pu_tmp1, dst
	insbl $9,$2,$4	 # tmp221, dst, __pu_tmp2
	mskbl $3,$2,$3	 # __pu_tmp1, dst
	or $3,$4,$3	 # __pu_tmp1, __pu_tmp2
2:	stq_u $3,0($2)	 # __pu_tmp1, dst
3:
.section __ex_table,"a"
	.long 1b-.
	lda $31,3b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,3b-2b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L48	 #, __pu_err,
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	lda $2,1($2)	 # dst,, dst
$L47:
 # fs/readdir.c:291: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $31,$1	 #, __pu_err
	.set	macro
 # 291 "fs/readdir.c" 1
	1:	ldq_u $3,0($2)	 # __pu_tmp1, dst
	insbl $1,$2,$4	 # __pu_err, dst, __pu_tmp2
	mskbl $3,$2,$3	 # __pu_tmp1, dst
	or $3,$4,$3	 # __pu_tmp1, __pu_tmp2
2:	stq_u $3,0($2)	 # __pu_tmp1, dst
3:
.section __ex_table,"a"
	.long 1b-.
	lda $31,3b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,3b-2b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L48	 #, __pu_err,
 # fs/readdir.c:295: 	dirent = (void __user *)dirent + reclen;
	.align 3 #realign	 #
	addq $6,$13,$1	 # dirent, reclen, dirent
 # fs/readdir.c:297: 	buf->count -= reclen;
	subl $5,$13,$5	 # _8, reclen, tmp232
 # fs/readdir.c:294: 	buf->previous = dirent;
	stq $6,24($11)	 # MEM[(struct getdents_callback *)ctx_55(D)].previous, dirent
 # fs/readdir.c:296: 	buf->current_dir = dirent;
	stq $1,16($11)	 # MEM[(struct getdents_callback *)ctx_55(D)].current_dir, dirent
 # fs/readdir.c:297: 	buf->count -= reclen;
	stl $5,32($11)	 # tmp232, MEM[(struct getdents_callback *)ctx_55(D)].count
 # fs/readdir.c:298: 	return 0;
	br $31,$L57	 #
	.align 4
$L60:
 # fs/readdir.c:264: 	buf->error = verify_dirent_name(name, namlen);
	stl $0,36($11)	 # <retval>, MEM[(struct getdents_callback *)ctx_55(D)].error
	br $31,$L57	 #
	.align 4
$L61:
 # fs/readdir.c:277: 		return -EINTR;
	lda $0,-4($31)	 # <retval>,
	br $31,$L57	 #
$L51:
 # fs/readdir.c:269: 		return -EINVAL;
	lda $0,-22($31)	 # <retval>,
	br $31,$L57	 #
	.cfi_endproc
$LFE3542:
	.end filldir
	.align 2
	.align 4
	.ent filldir64
filldir64:
	.frame $30,64,$26,0
	.mask 0x400fe00,-64
$LFB3545:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!29	 #,,
	lda $29,0($29)		!gpdisp!29	 #,,
$filldir64..ng:
	lda $30,-64($30)	 #,,
	.cfi_def_cfa_offset 64
	bis $31,$31,$31
	stq $9,8($30)	 #,
	.cfi_offset 9, -56
	mov $17,$9	 # tmp238, name
	stq $12,32($30)	 #,
	.cfi_offset 12, -32
 # fs/readdir.c:353: 	int reclen = ALIGN(offsetof(struct linux_dirent64, d_name) + namlen + 1,
	addl $18,27,$12	 # namlen,, tmp141
 # fs/readdir.c:349: {
	stq $11,24($30)	 #,
 # fs/readdir.c:353: 	int reclen = ALIGN(offsetof(struct linux_dirent64, d_name) + namlen + 1,
	bic $12,7,$12	 # tmp141,, tmp142
	.cfi_offset 11, -40
 # fs/readdir.c:349: {
	mov $16,$11	 # ctx, tmp237
 # fs/readdir.c:356: 	buf->error = verify_dirent_name(name, namlen);
	mov $18,$17	 # namlen,
	mov $9,$16	 # name,
 # fs/readdir.c:353: 	int reclen = ALIGN(offsetof(struct linux_dirent64, d_name) + namlen + 1,
	addl $31,$12,$12	 # tmp142, reclen
 # fs/readdir.c:349: {
	stq $10,16($30)	 #,
	.cfi_offset 10, -48
	mov $18,$10	 # tmp239, namlen
	stq $13,40($30)	 #,
	.cfi_offset 13, -24
	mov $21,$13	 # tmp242, d_type
	stq $14,48($30)	 #,
	.cfi_offset 14, -16
	mov $20,$14	 # tmp241, ino
	stq $15,56($30)	 #,
	.cfi_offset 15, -8
	mov $19,$15	 # tmp240, offset
	stq $26,0($30)	 #,
	.cfi_offset 26, -64
	.prologue 1
 # fs/readdir.c:356: 	buf->error = verify_dirent_name(name, namlen);
	ldq $27,verify_dirent_name($29)		!literal!30	 #
	jsr $26,($27),0		!lituse_jsr!30
	ldah $29,0($26)		!gpdisp!31
	lda $29,0($29)		!gpdisp!31
 # fs/readdir.c:357: 	if (unlikely(buf->error))
	bne $0,$L86	 #, <retval>,
 # fs/readdir.c:359: 	buf->error = -EINVAL;	/* only used if we fail.. */
	lda $1,-22($31)	 # tmp145,
 # fs/readdir.c:360: 	if (reclen > buf->count)
	ldl $5,32($11)	 # _8, MEM[(struct getdents_callback64 *)ctx_45(D)].count
 # fs/readdir.c:359: 	buf->error = -EINVAL;	/* only used if we fail.. */
	stl $1,36($11)	 # tmp145, MEM[(struct getdents_callback64 *)ctx_45(D)].error
 # fs/readdir.c:360: 	if (reclen > buf->count)
	bis $31,$31,$31
	cmplt $5,$12,$1	 #, _8, reclen, tmp146
	bne $1,$L77	 #, tmp146,
 # fs/readdir.c:362: 	dirent = buf->previous;
	ldq $2,24($11)	 # MEM[(struct getdents_callback64 *)ctx_45(D)].previous, dirent
 # fs/readdir.c:363: 	if (dirent && signal_pending(current))
	beq $2,$L66	 #, dirent,
 # ./include/linux/sched.h:1737: 	return test_ti_thread_flag(task_thread_info(tsk), flag);
	ldq $1,64($8)	 # __current_thread_info.30_9->task, __current_thread_info.30_9->task
 # ./arch/alpha/include/asm/bitops.h:289: 	return (1UL & (((const int *) addr)[nr >> 5] >> (nr & 31))) != 0UL;
	ldq $1,8($1)	 # _10->stack, _10->stack
 # ./arch/alpha/include/asm/bitops.h:289: 	return (1UL & (((const int *) addr)[nr >> 5] >> (nr & 31))) != 0UL;
	ldl $1,72($1)	 # MEM[(const int *)_115 + 72B], MEM[(const int *)_115 + 72B]
 # fs/readdir.c:363: 	if (dirent && signal_pending(current))
	and $1,4,$1	 # MEM[(const int *)_115 + 72B],, tmp152
	cmpult $31,$1,$1	 # tmp152, tmp152
	bne $1,$L87	 #, tmp152,
 # fs/readdir.c:370: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	lda $1,23($2)	 # __ao_end,, dirent
	ldq $3,80($8)	 # __current_thread_info.30_9->addr_limit.seg, __current_thread_info.30_9->addr_limit.seg
	bis $1,$2,$1	 # __ao_end, dirent, tmp231
	bis $1,24,$1	 # tmp231,, tmp232
	and $1,$3,$1	 # tmp232, __current_thread_info.30_9->addr_limit.seg, tmp233
 # fs/readdir.c:370: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	bne $1,$L74	 #, tmp233,
 # fs/readdir.c:373: 		unsafe_put_user(offset, &dirent->d_off, efault_end);
	mov $0,$1	 # <retval>, __pu_err
	.set	macro
 # 373 "fs/readdir.c" 1
	1: stq $15,8($2)	 # offset, MEM[(struct __large_struct *)_18]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L74	 #, __pu_err,
	.align 3 #realign	 #
$L76:
 # fs/readdir.c:374: 	dirent = buf->current_dir;
	ldq $6,16($11)	 # MEM[(struct getdents_callback64 *)ctx_45(D)].current_dir, dirent
 # fs/readdir.c:375: 	unsafe_put_user(ino, &dirent->d_ino, efault_end);
	mov $31,$1	 #, __pu_err
	.set	macro
 # 375 "fs/readdir.c" 1
	1: stq $14,0($6)	 # ino, MEM[(struct __large_struct *)_24]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L74	 #, __pu_err,
 # fs/readdir.c:376: 	unsafe_put_user(reclen, &dirent->d_reclen, efault_end);
	.align 3 #realign	 #
	zapnot $12,3,$3	 # reclen, reclen
	lda $2,16($6)	 # tmp164,, dirent
	.set	macro
 # 376 "fs/readdir.c" 1
	1:	ldq_u $7,1($2)	 # __pu_tmp2, tmp164
2:	ldq_u $4,0($2)	 # __pu_tmp1, tmp164
	inswh $3,$2,$23	 # reclen, tmp164, __pu_tmp4
	inswl $3,$2,$22	 # reclen, tmp164, __pu_tmp3
	mskwh $7,$2,$7	 # __pu_tmp2, tmp164
	mskwl $4,$2,$4	 # __pu_tmp1, tmp164
	or $7,$23,$7	 # __pu_tmp2, __pu_tmp4
	or $4,$22,$4	 # __pu_tmp1, __pu_tmp3
3:	stq_u $7,1($2)	 # __pu_tmp2, tmp164
4:	stq_u $4,0($2)	 # __pu_tmp1, tmp164
5:
.section __ex_table,"a"
	.long 1b-.
	lda $31,5b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,5b-2b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 3b-.
	lda $31,5b-3b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 4b-.
	lda $31,5b-4b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L74	 #, __pu_err,
 # fs/readdir.c:377: 	unsafe_put_user(d_type, &dirent->d_type, efault_end);
	.align 3 #realign	 #
	and $13,0xff,$13	 # d_type, d_type
	lda $2,18($6)	 # tmp172,, dirent
	.set	macro
 # 377 "fs/readdir.c" 1
	1:	ldq_u $3,0($2)	 # __pu_tmp1, tmp172
	insbl $13,$2,$4	 # d_type, tmp172, __pu_tmp2
	mskbl $3,$2,$3	 # __pu_tmp1, tmp172
	or $3,$4,$3	 # __pu_tmp1, __pu_tmp2
2:	stq_u $3,0($2)	 # __pu_tmp1, tmp172
3:
.section __ex_table,"a"
	.long 1b-.
	lda $31,3b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,3b-2b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L74	 #, __pu_err,
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.align 3 #realign	 #
	mov $10,$18	 # namlen, len
	lda $2,19($6)	 # dst,, dirent
	cmpule $10,7,$1	 #, len,, tmp174
	bne $1,$L69	 #, tmp174,
	mov $31,$7	 #, tmp182
	br $31,$L70	 #
	.align 4
$L88:
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	lda $2,8($2)	 # dst,, dst
	lda $9,8($9)	 # name,, name
	cmpule $18,7,$1	 #, len,, tmp183
	bne $1,$L69	 #, tmp183,
$L70:
 # ./include/linux/unaligned/packed_struct.h:25: 	return ptr->x;
	ldq_u $1,0($9)	 #, tmp177
	ldq_u $4,7($9)	 #, tmp178
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $7,$3	 # tmp182, __pu_err
 # ./include/linux/unaligned/packed_struct.h:25: 	return ptr->x;
	extql $1,$9,$1	 #, tmp177, name, tmp180
	extqh $4,$9,$4	 # tmp178, name, tmp181
	bis $1,$4,$1	 # tmp180, tmp181, tmp176
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.set	macro
 # 378 "fs/readdir.c" 1
	1: stq $1,0($2)	 # tmp176, MEM[(struct __large_struct *)dst_152]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($3)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	.align 3 #realign	 #
	lda $18,-8($18)	 # len,, len
	beq $3,$L88	 #, __pu_err,
$L68:
$L74:
 # fs/readdir.c:389: 	buf->error = -EFAULT;
	lda $1,-14($31)	 # tmp228,
 # fs/readdir.c:390: 	return -EFAULT;
	lda $0,-14($31)	 # <retval>,
 # fs/readdir.c:389: 	buf->error = -EFAULT;
	stl $1,36($11)	 # tmp228, MEM[(struct getdents_callback64 *)ctx_45(D)].error
	bis $31,$31,$31
$L83:
 # fs/readdir.c:391: }
	ldq $26,0($30)	 #,
	ldq $9,8($30)	 #,
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	ldq $12,32($30)	 #,
	ldq $13,40($30)	 #,
	ldq $14,48($30)	 #,
	ldq $15,56($30)	 #,
	lda $30,64($30)	 #,,
	.cfi_remember_state
	.cfi_restore 15
	.cfi_restore 14
	.cfi_restore 13
	.cfi_restore 12
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L66:
	.cfi_restore_state
 # fs/readdir.c:370: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	ldq $1,80($8)	 # __current_thread_info.31_163->addr_limit.seg, __current_thread_info.31_163->addr_limit.seg
	and $1,31,$1	 # __current_thread_info.31_163->addr_limit.seg,, tmp235
 # fs/readdir.c:370: 	if (!user_access_begin(dirent, sizeof(*dirent)))
	beq $1,$L76	 #, tmp235,
	br $31,$L74	 #
	.align 4
$L69:
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	cmpule $18,3,$1	 #, len,, tmp184
	bne $1,$L71	 #, tmp184,
 # ./include/linux/unaligned/packed_struct.h:19: 	return ptr->x;
	ldq_u $1,0($9)	 #, tmp187
	ldq_u $4,3($9)	 #, tmp188
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $31,$3	 #, __pu_err
 # ./include/linux/unaligned/packed_struct.h:19: 	return ptr->x;
	extll $1,$9,$1	 #, tmp187, name, tmp190
	extlh $4,$9,$4	 # tmp188, name, tmp191
	bis $1,$4,$1	 # tmp190, tmp191, tmp186
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.set	macro
 # 378 "fs/readdir.c" 1
	1: stl $1,0($2)	 # tmp186, MEM[(struct __large_struct *)dst_145]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($3)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $3,$L74	 #, __pu_err,
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.align 3 #realign	 #
	lda $2,4($2)	 # dst,, dst
	lda $9,4($9)	 # name,, name
	lda $18,-4($18)	 # len,, len
	bis $31,$31,$31
$L71:
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	cmpule $18,1,$1	 #, len,, tmp196
	bne $1,$L72	 #, tmp196,
 # ./include/linux/unaligned/packed_struct.h:13: 	return ptr->x;
	ldq_u $1,0($9)	 #, tmp203
	ldq_u $4,1($9)	 #, tmp204
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $31,$3	 #, __pu_err
 # ./include/linux/unaligned/packed_struct.h:13: 	return ptr->x;
	extwl $1,$9,$1	 #, tmp203, name, tmp206
	extwh $4,$9,$4	 # tmp204, name, tmp207
	bis $1,$4,$1	 # tmp206, tmp207, tmp202
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	zapnot $1,3,$1	 # tmp202, tmp211
	.set	macro
 # 378 "fs/readdir.c" 1
	1:	ldq_u $7,1($2)	 # __pu_tmp2, dst
2:	ldq_u $4,0($2)	 # __pu_tmp1, dst
	inswh $1,$2,$23	 # tmp211, dst, __pu_tmp4
	inswl $1,$2,$22	 # tmp211, dst, __pu_tmp3
	mskwh $7,$2,$7	 # __pu_tmp2, dst
	mskwl $4,$2,$4	 # __pu_tmp1, dst
	or $7,$23,$7	 # __pu_tmp2, __pu_tmp4
	or $4,$22,$4	 # __pu_tmp1, __pu_tmp3
3:	stq_u $7,1($2)	 # __pu_tmp2, dst
4:	stq_u $4,0($2)	 # __pu_tmp1, dst
5:
.section __ex_table,"a"
	.long 1b-.
	lda $31,5b-1b($3)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,5b-2b($3)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 3b-.
	lda $31,5b-3b($3)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 4b-.
	lda $31,5b-4b($3)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $3,$L74	 #, __pu_err,
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	.align 3 #realign	 #
	lda $2,2($2)	 # dst,, dst
	lda $9,2($9)	 # name,, name
	lda $18,-2($18)	 # len,, len
$L72:
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	beq $18,$L73	 #, len,
	ldq_u $3,0($9)	 #, tmp218
	mov $31,$1	 #, __pu_err
	extbl $3,$9,$9	 #, tmp218, name, tmp216
	.set	macro
 # 378 "fs/readdir.c" 1
	1:	ldq_u $3,0($2)	 # __pu_tmp1, dst
	insbl $9,$2,$4	 # tmp216, dst, __pu_tmp2
	mskbl $3,$2,$3	 # __pu_tmp1, dst
	or $3,$4,$3	 # __pu_tmp1, __pu_tmp2
2:	stq_u $3,0($2)	 # __pu_tmp1, dst
3:
.section __ex_table,"a"
	.long 1b-.
	lda $31,3b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,3b-2b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L74	 #, __pu_err,
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	lda $2,1($2)	 # dst,, dst
$L73:
 # fs/readdir.c:378: 	unsafe_copy_dirent_name(dirent->d_name, name, namlen, efault_end);
	mov $31,$1	 #, __pu_err
	.set	macro
 # 378 "fs/readdir.c" 1
	1:	ldq_u $3,0($2)	 # __pu_tmp1, dst
	insbl $1,$2,$4	 # __pu_err, dst, __pu_tmp2
	mskbl $3,$2,$3	 # __pu_tmp1, dst
	or $3,$4,$3	 # __pu_tmp1, __pu_tmp2
2:	stq_u $3,0($2)	 # __pu_tmp1, dst
3:
.section __ex_table,"a"
	.long 1b-.
	lda $31,3b-1b($1)	 # __pu_err
.previous
.section __ex_table,"a"
	.long 2b-.
	lda $31,3b-2b($1)	 # __pu_err
.previous

 # 0 "" 2
	.set	nomacro
	bne $1,$L74	 #, __pu_err,
 # fs/readdir.c:382: 	dirent = (void __user *)dirent + reclen;
	.align 3 #realign	 #
	addq $6,$12,$1	 # dirent, reclen, dirent
 # fs/readdir.c:384: 	buf->count -= reclen;
	subl $5,$12,$5	 # _8, reclen, tmp227
 # fs/readdir.c:381: 	buf->previous = dirent;
	stq $6,24($11)	 # MEM[(struct getdents_callback64 *)ctx_45(D)].previous, dirent
 # fs/readdir.c:383: 	buf->current_dir = dirent;
	stq $1,16($11)	 # MEM[(struct getdents_callback64 *)ctx_45(D)].current_dir, dirent
 # fs/readdir.c:384: 	buf->count -= reclen;
	stl $5,32($11)	 # tmp227, MEM[(struct getdents_callback64 *)ctx_45(D)].count
 # fs/readdir.c:385: 	return 0;
	br $31,$L83	 #
	.align 4
$L86:
 # fs/readdir.c:356: 	buf->error = verify_dirent_name(name, namlen);
	stl $0,36($11)	 # <retval>, MEM[(struct getdents_callback64 *)ctx_45(D)].error
	br $31,$L83	 #
	.align 4
$L87:
 # fs/readdir.c:364: 		return -EINTR;
	lda $0,-4($31)	 # <retval>,
	br $31,$L83	 #
$L77:
 # fs/readdir.c:361: 		return -EINVAL;
	lda $0,-22($31)	 # <retval>,
	br $31,$L83	 #
	.cfi_endproc
$LFE3545:
	.end filldir64
	.align 2
	.align 4
	.globl __se_sys_old_readdir
	.ent __se_sys_old_readdir
__se_sys_old_readdir:
	.frame $30,64,$26,0
	.mask 0x4000e00,-64
$LFB3540:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!32	 #,,
	lda $29,0($29)		!gpdisp!32	 #,,
$__se_sys_old_readdir..ng:
	lda $30,-64($30)	 #,,
	.cfi_def_cfa_offset 64
 # ./include/linux/file.h:72: 	return __to_fd(__fdget_pos(fd));
	ldq $27,__fdget_pos($29)		!literal!37	 #,,,
 # fs/readdir.c:212: SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
	stq $9,8($30)	 #,
 # ./include/linux/file.h:72: 	return __to_fd(__fdget_pos(fd));
	addl $31,$16,$16	 # tmp100,
 # fs/readdir.c:212: SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
	stq $10,16($30)	 #,
	.cfi_offset 9, -56
	.cfi_offset 10, -48
	mov $17,$10	 # tmp101, dirent
	stq $11,24($30)	 #,
	stq $26,0($30)	 #,
	.cfi_offset 11, -40
	.cfi_offset 26, -64
	.prologue 1
 # ./include/linux/file.h:72: 	return __to_fd(__fdget_pos(fd));
	jsr $26,($27),__fdget_pos		!lituse_jsr!37	 #,,
	ldah $29,0($26)		!gpdisp!38	 #
 # fs/readdir.c:217: 	struct readdir_callback buf = {
	stq $31,40($30)	 # MEM[(struct readdir_callback *)&buf + 8B],
 # ./include/linux/file.h:72: 	return __to_fd(__fdget_pos(fd));
	lda $29,0($29)		!gpdisp!38	 #,,
 # ./include/linux/file.h:57: 	return (struct fd){(struct file *)(v & ~3),v & 3};
	bic $0,3,$11	 # _9,, _11
 # fs/readdir.c:217: 	struct readdir_callback buf = {
	ldq_u $31,0($30)
	ldah $1,fillonedir($29)		!gprelhigh	 # tmp88,,
 # ./include/linux/file.h:57: 	return (struct fd){(struct file *)(v & ~3),v & 3};
	addl $31,$0,$9	 # _9, _12
 # fs/readdir.c:217: 	struct readdir_callback buf = {
	lda $1,fillonedir($1)		!gprellow	 # tmp87,, tmp88
 # fs/readdir.c:223: 		return -EBADF;
	lda $0,-9($31)	 # <retval>,
 # fs/readdir.c:217: 	struct readdir_callback buf = {
	stq $31,56($30)	 # MEM[(struct readdir_callback *)&buf + 8B],
	stq $1,32($30)	 # buf.ctx.actor, tmp87
	stq $10,48($30)	 # buf.dirent, dirent
 # fs/readdir.c:222: 	if (!f.file)
	beq $11,$L89	 #, _11,
 # fs/readdir.c:225: 	error = iterate_dir(f.file, &buf.ctx);
	lda $17,32($30)	 #,,
	mov $11,$16	 # _11,
	ldq $27,iterate_dir($29)		!literal!39	 #
	jsr $26,($27),0		!lituse_jsr!39
	ldah $29,0($26)		!gpdisp!40
	lda $29,0($29)		!gpdisp!40
	mov $0,$10	 #, tmp103
 # fs/readdir.c:226: 	if (buf.result)
	ldl $0,56($30)	 # _15, buf.result
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	and $9,2,$1	 # _12,, tmp94
 # fs/readdir.c:226: 	if (buf.result)
	cmovne $0,$0,$10	 #, _15, _15, error
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	bne $1,$L104	 #, tmp94,
 # ./include/linux/file.h:43: 	if (fd.flags & FDPUT_FPUT)
	blbs $9,$L105	 # _12,
$L93:
 # fs/readdir.c:230: 	return error;
	mov $10,$0	 # error, <retval>
$L89:
 # fs/readdir.c:212: SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
	ldq $26,0($30)	 #,
	ldq $9,8($30)	 #,
	bis $31,$31,$31
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	lda $30,64($30)	 #,,
	.cfi_remember_state
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L105:
	.cfi_restore_state
 # ./include/linux/file.h:44: 		fput(fd.file);
	ldq $27,fput($29)		!literal!33	 #,,,
	mov $11,$16	 # _11,
	jsr $26,($27),fput		!lituse_jsr!33	 #,,
	ldah $29,0($26)		!gpdisp!34	 #
	lda $29,0($29)		!gpdisp!34	 #,,
	br $31,$L93	 #
	.align 4
$L104:
 # ./include/linux/file.h:78: 		__f_unlock_pos(f.file);
	ldq $27,__f_unlock_pos($29)		!literal!35	 #,,,
	mov $11,$16	 # _11,
	jsr $26,($27),__f_unlock_pos		!lituse_jsr!35	 #,,
	ldah $29,0($26)		!gpdisp!36	 #
	lda $29,0($29)		!gpdisp!36	 #,,
 # ./include/linux/file.h:43: 	if (fd.flags & FDPUT_FPUT)
	blbc $9,$L93	 # _12,
	br $31,$L105	 #
	.cfi_endproc
$LFE3540:
	.end __se_sys_old_readdir
	.globl sys_old_readdir
$sys_old_readdir..ng = $__se_sys_old_readdir..ng
sys_old_readdir = __se_sys_old_readdir
	.align 2
	.align 4
	.globl __se_sys_getdents
	.ent __se_sys_getdents
__se_sys_getdents:
	.frame $30,96,$26,0
	.mask 0x4001e00,-96
$LFB3543:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!41	 #,,
	lda $29,0($29)		!gpdisp!41	 #,,
$__se_sys_getdents..ng:
 # fs/readdir.c:318: 	if (!access_ok(dirent, count))
	zapnot $18,15,$2	 # count,, __ao_b
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	lda $30,-96($30)	 #,,
	.cfi_def_cfa_offset 96
 # fs/readdir.c:318: 	if (!access_ok(dirent, count))
	cmpult $31,$2,$3	 # __ao_b, tmp119
	addq $17,$2,$1	 # dirent, __ao_b, tmp117
	subq $1,$3,$1	 # tmp117, tmp119, __ao_end
	bis $17,$2,$2	 # dirent, __ao_b, tmp121
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	stq $10,16($30)	 #,
 # fs/readdir.c:318: 	if (!access_ok(dirent, count))
	bis $1,$2,$1	 # __ao_end, tmp121, tmp122
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	stq $11,24($30)	 #,
 # fs/readdir.c:311: 	struct getdents_callback buf = {
	ldah $2,filldir($29)		!gprelhigh	 # tmp116,,
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	stq $26,0($30)	 #,
 # fs/readdir.c:311: 	struct getdents_callback buf = {
	lda $2,filldir($2)		!gprellow	 # tmp115,, tmp116
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	stq $9,8($30)	 #,
	.cfi_offset 10, -80
	.cfi_offset 11, -72
	.cfi_offset 26, -96
	.cfi_offset 9, -88
	mov $18,$10	 # tmp152, count
	stq $12,32($30)	 #,
	.cfi_offset 12, -64
	.prologue 1
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	addl $31,$16,$16	 # tmp150, _1
 # fs/readdir.c:311: 	struct getdents_callback buf = {
	stq $31,80($30)	 # MEM[(struct getdents_callback *)&buf + 8B],
 # fs/readdir.c:319: 		return -EFAULT;
	lda $11,-14($31)	 # <retval>,
 # fs/readdir.c:318: 	if (!access_ok(dirent, count))
	ldq $3,80($8)	 # __current_thread_info.12_17->addr_limit.seg, __current_thread_info.12_17->addr_limit.seg
 # fs/readdir.c:311: 	struct getdents_callback buf = {
	stq $31,56($30)	 # MEM[(struct getdents_callback *)&buf + 8B],
	stq $31,72($30)	 # MEM[(struct getdents_callback *)&buf + 8B],
 # fs/readdir.c:318: 	if (!access_ok(dirent, count))
	and $1,$3,$1	 # tmp122, __current_thread_info.12_17->addr_limit.seg, tmp123
 # fs/readdir.c:311: 	struct getdents_callback buf = {
	stq $2,48($30)	 # buf.ctx.actor, tmp115
	stq $17,64($30)	 # buf.current_dir, dirent
	stl $18,80($30)	 # count, buf.count
 # fs/readdir.c:318: 	if (!access_ok(dirent, count))
	bne $1,$L106	 #, tmp123,
 # ./include/linux/file.h:72: 	return __to_fd(__fdget_pos(fd));
	ldq $27,__fdget_pos($29)		!literal!46	 #,,,
	bis $31,$31,$31
	jsr $26,($27),__fdget_pos		!lituse_jsr!46	 #,,
	ldah $29,0($26)		!gpdisp!47	 #
	lda $29,0($29)		!gpdisp!47	 #,,
 # ./include/linux/file.h:57: 	return (struct fd){(struct file *)(v & ~3),v & 3};
	bic $0,3,$12	 # _22,, _24
 # ./include/linux/file.h:57: 	return (struct fd){(struct file *)(v & ~3),v & 3};
	addl $31,$0,$9	 # _22, _25
 # fs/readdir.c:322: 	if (!f.file)
	beq $12,$L114	 #, _24,
 # fs/readdir.c:325: 	error = iterate_dir(f.file, &buf.ctx);
	lda $17,48($30)	 #,,
	mov $12,$16	 # _24,
	ldq $27,iterate_dir($29)		!literal!48	 #
	jsr $26,($27),0		!lituse_jsr!48
	ldah $29,0($26)		!gpdisp!49
	lda $29,0($29)		!gpdisp!49
 # fs/readdir.c:327: 		error = buf.error;
	ldl $1,84($30)	 # buf.error, buf.error
 # fs/readdir.c:328: 	lastdirent = buf.previous;
	ldq $3,72($30)	 # buf.previous, lastdirent
 # fs/readdir.c:327: 		error = buf.error;
	cmovge $0,$1,$0	 #, tmp154, buf.error, error
 # fs/readdir.c:329: 	if (lastdirent) {
	beq $3,$L123	 #, lastdirent,
 # fs/readdir.c:330: 		if (put_user(buf.ctx.pos, &lastdirent->d_off))
	lda $2,15($3)	 # __ao_end,, lastdirent
	lda $1,8($3)	 # __pu_addr,, lastdirent
	bis $2,$1,$1	 # __ao_end, __pu_addr, tmp130
	ldq $2,80($8)	 # __current_thread_info.14_33->addr_limit.seg, __current_thread_info.14_33->addr_limit.seg
	bis $1,8,$1	 # tmp130,, tmp131
	bis $31,$31,$31
	and $1,$2,$1	 # tmp131, __current_thread_info.14_33->addr_limit.seg, tmp132
	bne $1,$L110	 #, tmp132,
	ldq $2,56($30)	 # buf.ctx.pos, buf.ctx.pos
	.set	macro
 # 330 "fs/readdir.c" 1
	1: stq $2,8($3)	 # buf.ctx.pos, MEM[(struct __large_struct *)__pu_addr_30]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($1)	 # __pu_err
.previous

 # 0 "" 2
 # fs/readdir.c:330: 		if (put_user(buf.ctx.pos, &lastdirent->d_off))
	.set	nomacro
	beq $1,$L124	 #, __pu_err,
	.align 3 #realign	 #
$L110:
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	and $9,2,$1	 # _25,, tmp142
	bne $1,$L125	 #, tmp142,
$L111:
 # ./include/linux/file.h:43: 	if (fd.flags & FDPUT_FPUT)
	bis $31,$31,$31
	blbs $9,$L126	 # _25,
$L106:
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	mov $11,$0	 # <retval>,
	ldq $26,0($30)	 #,
	ldq $9,8($30)	 #,
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	ldq $12,32($30)	 #,
	lda $30,96($30)	 #,,
	.cfi_remember_state
	.cfi_restore 12
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L125:
	.cfi_restore_state
 # ./include/linux/file.h:78: 		__f_unlock_pos(f.file);
	ldq $27,__f_unlock_pos($29)		!literal!44	 #,,,
	mov $12,$16	 # _24,
	jsr $26,($27),__f_unlock_pos		!lituse_jsr!44	 #,,
	ldah $29,0($26)		!gpdisp!45	 #
	lda $29,0($29)		!gpdisp!45	 #,,
 # ./include/linux/file.h:43: 	if (fd.flags & FDPUT_FPUT)
	blbc $9,$L106	 # _25,
$L126:
 # ./include/linux/file.h:44: 		fput(fd.file);
	ldq $27,fput($29)		!literal!42	 #,,,
	mov $12,$16	 # _24,
	jsr $26,($27),fput		!lituse_jsr!42	 #,,
	ldah $29,0($26)		!gpdisp!43	 #
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	ldq $9,8($30)	 #,
	bis $31,$31,$31
	mov $11,$0	 # <retval>,
	ldq $26,0($30)	 #,
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	ldq $12,32($30)	 #,
 # ./include/linux/file.h:44: 		fput(fd.file);
	lda $29,0($29)		!gpdisp!43	 #,,
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	lda $30,96($30)	 #,,
	.cfi_remember_state
	.cfi_restore 12
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L123:
	.cfi_restore_state
	mov $0,$11	 # error, <retval>
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	and $9,2,$1	 # _25,, tmp142
	beq $1,$L111	 #, tmp142,
	br $31,$L125	 #
	.align 4
$L124:
 # fs/readdir.c:333: 			error = count - buf.count;
	ldl $11,80($30)	 #, buf.count
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	and $9,2,$1	 # _25,, tmp142
	subl $10,$11,$11	 # count, buf.count, <retval>
	beq $1,$L111	 #, tmp142,
	br $31,$L125	 #
$L114:
 # fs/readdir.c:323: 		return -EBADF;
	lda $11,-9($31)	 # <retval>,
 # fs/readdir.c:306: SYSCALL_DEFINE3(getdents, unsigned int, fd,
	br $31,$L106	 #
	.cfi_endproc
$LFE3543:
	.end __se_sys_getdents
	.globl sys_getdents
$sys_getdents..ng = $__se_sys_getdents..ng
sys_getdents = __se_sys_getdents
	.align 2
	.align 4
	.globl ksys_getdents64
	.ent ksys_getdents64
ksys_getdents64:
	.frame $30,96,$26,0
	.mask 0x4003e00,-96
$LFB3546:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!50	 #,,
	lda $29,0($29)		!gpdisp!50	 #,,
$ksys_getdents64..ng:
 # fs/readdir.c:405: 	if (!access_ok(dirent, count))
	zapnot $18,15,$1	 # count, __ao_b
 # fs/readdir.c:395: {
	lda $30,-96($30)	 #,,
	.cfi_def_cfa_offset 96
	stq $9,8($30)	 #,
 # fs/readdir.c:405: 	if (!access_ok(dirent, count))
	cmpult $31,$1,$2	 # __ao_b, tmp105
 # fs/readdir.c:395: {
	stq $10,16($30)	 #,
	.cfi_offset 9, -88
	.cfi_offset 10, -80
 # fs/readdir.c:405: 	if (!access_ok(dirent, count))
	addq $17,$1,$9	 # dirent, __ao_b, tmp103
	subq $9,$2,$9	 # tmp103, tmp105, __ao_end
	bis $17,$1,$1	 # dirent, __ao_b, tmp107
 # fs/readdir.c:395: {
	stq $12,32($30)	 #,
 # fs/readdir.c:405: 	if (!access_ok(dirent, count))
	bis $9,$1,$9	 # __ao_end, tmp107, tmp108
 # fs/readdir.c:395: {
	stq $26,0($30)	 #,
 # fs/readdir.c:398: 	struct getdents_callback64 buf = {
	ldah $1,filldir64($29)		!gprelhigh	 # tmp102,,
 # fs/readdir.c:395: {
	stq $11,24($30)	 #,
 # fs/readdir.c:398: 	struct getdents_callback64 buf = {
	lda $1,filldir64($1)		!gprellow	 # tmp101,, tmp102
 # fs/readdir.c:395: {
	stq $13,40($30)	 #,
	.cfi_offset 12, -64
	.cfi_offset 26, -96
	.cfi_offset 11, -72
	.cfi_offset 13, -56
	.prologue 1
 # fs/readdir.c:395: {
	mov $18,$12	 # tmp132, count
 # fs/readdir.c:398: 	struct getdents_callback64 buf = {
	stq $31,80($30)	 # MEM[(struct getdents_callback64 *)&buf + 8B],
 # fs/readdir.c:406: 		return -EFAULT;
	lda $10,-14($31)	 # <retval>,
 # fs/readdir.c:405: 	if (!access_ok(dirent, count))
	ldq $2,80($8)	 # __current_thread_info.25_5->addr_limit.seg, __current_thread_info.25_5->addr_limit.seg
 # fs/readdir.c:398: 	struct getdents_callback64 buf = {
	stq $31,56($30)	 # MEM[(struct getdents_callback64 *)&buf + 8B],
	stq $31,72($30)	 # MEM[(struct getdents_callback64 *)&buf + 8B],
 # fs/readdir.c:405: 	if (!access_ok(dirent, count))
	and $9,$2,$9	 # tmp108, __current_thread_info.25_5->addr_limit.seg, tmp109
 # fs/readdir.c:398: 	struct getdents_callback64 buf = {
	stq $1,48($30)	 # buf.ctx.actor, tmp101
	stq $17,64($30)	 # buf.current_dir, dirent
	stl $18,80($30)	 # count, buf.count
 # fs/readdir.c:405: 	if (!access_ok(dirent, count))
	bne $9,$L128	 #, tmp109,
 # ./include/linux/file.h:72: 	return __to_fd(__fdget_pos(fd));
	ldq $27,__fdget_pos($29)		!literal!55	 #,,,
 # fs/readdir.c:410: 		return -EBADF;
	lda $10,-9($31)	 # <retval>,
 # ./include/linux/file.h:72: 	return __to_fd(__fdget_pos(fd));
	jsr $26,($27),__fdget_pos		!lituse_jsr!55	 #,,
	ldah $29,0($26)		!gpdisp!56	 #
	lda $29,0($29)		!gpdisp!56	 #,,
 # ./include/linux/file.h:57: 	return (struct fd){(struct file *)(v & ~3),v & 3};
	bic $0,3,$13	 # _38,, _40
 # ./include/linux/file.h:57: 	return (struct fd){(struct file *)(v & ~3),v & 3};
	addl $31,$0,$11	 # _38, _41
 # fs/readdir.c:409: 	if (!f.file)
	beq $13,$L128	 #, _40,
 # fs/readdir.c:412: 	error = iterate_dir(f.file, &buf.ctx);
	lda $17,48($30)	 #,,
	mov $13,$16	 # _40,
	ldq $27,iterate_dir($29)		!literal!57	 #
	jsr $26,($27),0		!lituse_jsr!57
	ldah $29,0($26)		!gpdisp!58
	lda $29,0($29)		!gpdisp!58
 # fs/readdir.c:414: 		error = buf.error;
	ldl $10,84($30)	 # buf.error, buf.error
 # fs/readdir.c:415: 	lastdirent = buf.previous;
	ldq $1,72($30)	 # buf.previous, lastdirent
 # fs/readdir.c:414: 		error = buf.error;
	cmovlt $0,$0,$10	 #, tmp134, tmp134, <retval>
 # fs/readdir.c:416: 	if (lastdirent) {
	beq $1,$L130	 #, lastdirent,
 # fs/readdir.c:418: 		if (__put_user(d_off, &lastdirent->d_off))
	ldq $2,56($30)	 # buf.ctx.pos, buf.ctx.pos
	.set	macro
 # 418 "fs/readdir.c" 1
	1: stq $2,8($1)	 # buf.ctx.pos, MEM[(struct __large_struct *)_15]
2:
.section __ex_table,"a"
	.long 1b-.
	lda $31,2b-1b($9)	 # __pu_err
.previous

 # 0 "" 2
 # fs/readdir.c:419: 			error = -EFAULT;
	.set	nomacro
	.align 3 #realign	 #
	lda $10,-14($31)	 # <retval>,
 # fs/readdir.c:418: 		if (__put_user(d_off, &lastdirent->d_off))
	beq $9,$L144	 #, __pu_err,
$L130:
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	and $11,2,$1	 # _41,, tmp123
	bne $1,$L145	 #, tmp123,
$L131:
 # ./include/linux/file.h:43: 	if (fd.flags & FDPUT_FPUT)
	bis $31,$31,$31
	blbs $11,$L146	 # _41,
$L128:
 # fs/readdir.c:425: }
	mov $10,$0	 # <retval>,
	ldq $26,0($30)	 #,
	ldq $9,8($30)	 #,
	ldq $10,16($30)	 #,
	ldq $11,24($30)	 #,
	ldq $12,32($30)	 #,
	ldq $13,40($30)	 #,
	bis $31,$31,$31
	lda $30,96($30)	 #,,
	.cfi_remember_state
	.cfi_restore 13
	.cfi_restore 12
	.cfi_restore 11
	.cfi_restore 10
	.cfi_restore 9
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.align 4
$L144:
	.cfi_restore_state
 # fs/readdir.c:421: 			error = count - buf.count;
	ldl $10,80($30)	 #, buf.count
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	and $11,2,$1	 # _41,, tmp123
 # fs/readdir.c:421: 			error = count - buf.count;
	subl $12,$10,$10	 # count, buf.count, <retval>
 # ./include/linux/file.h:77: 	if (f.flags & FDPUT_POS_UNLOCK)
	beq $1,$L131	 #, tmp123,
$L145:
 # ./include/linux/file.h:78: 		__f_unlock_pos(f.file);
	ldq $27,__f_unlock_pos($29)		!literal!53	 #,,,
	mov $13,$16	 # _40,
	jsr $26,($27),__f_unlock_pos		!lituse_jsr!53	 #,,
	ldah $29,0($26)		!gpdisp!54	 #
	lda $29,0($29)		!gpdisp!54	 #,,
 # ./include/linux/file.h:43: 	if (fd.flags & FDPUT_FPUT)
	blbc $11,$L128	 # _41,
$L146:
 # ./include/linux/file.h:44: 		fput(fd.file);
	ldq $27,fput($29)		!literal!51	 #,,,
	mov $13,$16	 # _40,
	jsr $26,($27),fput		!lituse_jsr!51	 #,,
	ldah $29,0($26)		!gpdisp!52	 #
	lda $29,0($29)		!gpdisp!52	 #,,
	br $31,$L128	 #
	.cfi_endproc
$LFE3546:
	.end ksys_getdents64
	.align 2
	.align 4
	.globl __se_sys_getdents64
	.ent __se_sys_getdents64
__se_sys_getdents64:
	.frame $30,16,$26,0
	.mask 0x4000000,-16
$LFB3547:
	.cfi_startproc
	ldah $29,0($27)		!gpdisp!59	 #,,
	lda $29,0($29)		!gpdisp!59	 #,,
$__se_sys_getdents64..ng:
	lda $30,-16($30)	 #,,
	.cfi_def_cfa_offset 16
 # fs/readdir.c:431: 	return ksys_getdents64(fd, dirent, count);
	addl $31,$18,$18	 # tmp84,
 # fs/readdir.c:428: SYSCALL_DEFINE3(getdents64, unsigned int, fd,
	stq $26,0($30)	 #,
	.cfi_offset 26, -16
	.prologue 1
 # fs/readdir.c:431: 	return ksys_getdents64(fd, dirent, count);
	addl $31,$16,$16	 # tmp83,
	ldq $27,ksys_getdents64($29)		!literal!60	 #
	jsr $26,($27),0		!lituse_jsr!60
	ldah $29,0($26)		!gpdisp!61
	lda $29,0($29)		!gpdisp!61
 # fs/readdir.c:428: SYSCALL_DEFINE3(getdents64, unsigned int, fd,
	ldq $26,0($30)	 #,
	bis $31,$31,$31
	lda $30,16($30)	 #,,
	.cfi_restore 26
	.cfi_def_cfa_offset 0
	ret $31,($26),1
	.cfi_endproc
$LFE3547:
	.end __se_sys_getdents64
	.globl sys_getdents64
$sys_getdents64..ng = $__se_sys_getdents64..ng
sys_getdents64 = __se_sys_getdents64
	.section	.data.once,"aw"
	.type	__warned.38914, @object
	.size	__warned.38914, 1
__warned.38914:
	.zero	1
	.type	__warned.38909, @object
	.size	__warned.38909, 1
__warned.38909:
	.zero	1
	.section	___ksymtab+iterate_dir,"a"
	.align 3
	.type	__ksymtab_iterate_dir, @object
	.size	__ksymtab_iterate_dir, 24
__ksymtab_iterate_dir:
 # value:
	.quad	iterate_dir
 # name:
	.quad	__kstrtab_iterate_dir
 # namespace:
	.quad	0
	.section	__ksymtab_strings,"a"
	.type	__kstrtab_iterate_dir, @object
	.size	__kstrtab_iterate_dir, 12
__kstrtab_iterate_dir:
	.string	"iterate_dir"
	.ident	"GCC: (GNU) 9.2.0"
	.section	.note.GNU-stack,"",@progbits

[-- Attachment #3: readdir.s.objdump --]
[-- Type: text/plain, Size: 32015 bytes --]


fs/readdir.o:     file format elf64-alpha


Disassembly of section .text:

0000000000000000 <iterate_dir>:
   0:	00 00 bb 27 	ldah	gp,0(t12)
   4:	00 00 bd 23 	lda	gp,0(gp)
   8:	c0 ff de 23 	lda	sp,-64(sp)
   c:	1f 04 ff 47 	nop	
  10:	08 00 3e b5 	stq	s0,8(sp)
  14:	09 04 f0 47 	mov	a0,s0
  18:	18 00 7e b5 	stq	s2,24(sp)
  1c:	0b 04 f1 47 	mov	a1,s2
  20:	00 00 5e b7 	stq	ra,0(sp)
  24:	10 00 5e b5 	stq	s1,16(sp)
  28:	20 00 9e b5 	stq	s3,32(sp)
  2c:	28 00 be b5 	stq	s4,40(sp)
  30:	30 00 de b5 	stq	s5,48(sp)
  34:	38 00 fe b5 	stq	fp,56(sp)
  38:	28 00 30 a4 	ldq	t0,40(a0)
  3c:	20 00 90 a5 	ldq	s3,32(a0)
  40:	40 00 41 a4 	ldq	t1,64(t0)
  44:	52 00 40 e4 	beq	t1,190 <iterate_dir+0x190>
  48:	a0 00 ac 21 	lda	s4,160(s3)
  4c:	00 00 7d a7 	ldq	t12,0(gp)
  50:	10 04 ed 47 	mov	s4,a0
  54:	01 00 df 21 	lda	s5,1
  58:	00 40 5b 6b 	jsr	ra,(t12),5c <iterate_dir+0x5c>
  5c:	00 00 ba 27 	ldah	gp,0(ra)
  60:	00 00 bd 23 	lda	gp,0(gp)
  64:	0a 04 e0 47 	mov	v0,s1
  68:	00 00 fe 2f 	unop	
  6c:	32 00 40 f5 	bne	s1,138 <iterate_dir+0x138>
  70:	0c 00 2c a0 	ldl	t0,12(s3)
  74:	fe ff 5f 21 	lda	s1,-2
  78:	01 10 22 44 	and	t0,0x10,t0
  7c:	28 00 20 f4 	bne	t0,120 <iterate_dir+0x120>
  80:	98 00 29 a4 	ldq	t0,152(s0)
  84:	11 04 eb 47 	mov	s2,a1
  88:	10 04 e9 47 	mov	s0,a0
  8c:	08 00 2b b4 	stq	t0,8(s2)
  90:	28 00 29 a4 	ldq	t0,40(s0)
  94:	4e 00 c0 f5 	bne	s5,1d0 <iterate_dir+0x1d0>
  98:	38 00 61 a7 	ldq	t12,56(t0)
  9c:	00 40 5b 6b 	jsr	ra,(t12),a0 <iterate_dir+0xa0>
  a0:	00 00 ba 27 	ldah	gp,0(ra)
  a4:	00 00 bd 23 	lda	gp,0(gp)
  a8:	0a 04 e0 47 	mov	v0,s1
  ac:	1f 04 ff 47 	nop	
  b0:	08 00 2b a4 	ldq	t0,8(s2)
  b4:	20 00 89 a5 	ldq	s3,32(s0)
  b8:	5c 00 49 a0 	ldl	t1,92(s0)
  bc:	00 40 5f 26 	ldah	a2,16384
  c0:	98 00 29 b4 	stq	t0,152(s0)
  c4:	01 00 52 22 	lda	a2,1(a2)
  c8:	00 00 2c a0 	ldl	t0,0(s3)
  cc:	01 00 7f 21 	lda	s2,1
  d0:	82 56 43 48 	srl	t1,0x1a,t1
  d4:	10 00 e9 21 	lda	fp,16(s0)
  d8:	c3 12 20 48 	extwl	t0,0,t2
  dc:	00 f0 3f 20 	lda	t0,-4096
  e0:	01 00 23 44 	and	t0,t2,t0
  e4:	00 c0 21 20 	lda	t0,-16384(t0)
  e8:	8b 04 32 44 	cmoveq	t0,a2,s2
  ec:	40 00 40 e0 	blbc	t1,1f0 <iterate_dir+0x1f0>
  f0:	58 00 29 a0 	ldl	t0,88(s0)
  f4:	81 96 22 48 	srl	t0,0x14,t0
  f8:	00 00 fe 2f 	unop	
  fc:	08 00 20 f0 	blbs	t0,120 <iterate_dir+0x120>
 100:	00 00 7d a7 	ldq	t12,0(gp)
 104:	10 04 ef 47 	mov	fp,a0
 108:	00 40 5b 6b 	jsr	ra,(t12),10c <iterate_dir+0x10c>
 10c:	00 00 ba 27 	ldah	gp,0(ra)
 110:	00 00 bd 23 	lda	gp,0(gp)
 114:	00 00 fe 2f 	unop	
 118:	1f 04 ff 47 	nop	
 11c:	00 00 fe 2f 	unop	
 120:	10 04 ed 47 	mov	s4,a0
 124:	12 00 c0 e5 	beq	s5,170 <iterate_dir+0x170>
 128:	00 00 7d a7 	ldq	t12,0(gp)
 12c:	00 40 5b 6b 	jsr	ra,(t12),130 <iterate_dir+0x130>
 130:	00 00 ba 27 	ldah	gp,0(ra)
 134:	00 00 bd 23 	lda	gp,0(gp)
 138:	00 04 ea 47 	mov	s1,v0
 13c:	00 00 5e a7 	ldq	ra,0(sp)
 140:	08 00 3e a5 	ldq	s0,8(sp)
 144:	10 00 5e a5 	ldq	s1,16(sp)
 148:	18 00 7e a5 	ldq	s2,24(sp)
 14c:	20 00 9e a5 	ldq	s3,32(sp)
 150:	28 00 be a5 	ldq	s4,40(sp)
 154:	30 00 de a5 	ldq	s5,48(sp)
 158:	38 00 fe a5 	ldq	fp,56(sp)
 15c:	1f 04 ff 47 	nop	
 160:	40 00 de 23 	lda	sp,64(sp)
 164:	01 80 fa 6b 	ret
 168:	1f 04 ff 47 	nop	
 16c:	00 00 fe 2f 	unop	
 170:	00 00 7d a7 	ldq	t12,0(gp)
 174:	1f 04 ff 47 	nop	
 178:	00 40 5b 6b 	jsr	ra,(t12),17c <iterate_dir+0x17c>
 17c:	00 00 ba 27 	ldah	gp,0(ra)
 180:	00 00 bd 23 	lda	gp,0(gp)
 184:	ec ff ff c3 	br	138 <iterate_dir+0x138>
 188:	1f 04 ff 47 	nop	
 18c:	00 00 fe 2f 	unop	
 190:	38 00 21 a4 	ldq	t0,56(t0)
 194:	ec ff 5f 21 	lda	s1,-20
 198:	00 00 fe 2f 	unop	
 19c:	e6 ff 3f e4 	beq	t0,138 <iterate_dir+0x138>
 1a0:	a0 00 ac 21 	lda	s4,160(s3)
 1a4:	00 00 7d a7 	ldq	t12,0(gp)
 1a8:	10 04 ed 47 	mov	s4,a0
 1ac:	0e 04 ff 47 	clr	s5
 1b0:	00 40 5b 6b 	jsr	ra,(t12),1b4 <iterate_dir+0x1b4>
 1b4:	00 00 ba 27 	ldah	gp,0(ra)
 1b8:	00 00 bd 23 	lda	gp,0(gp)
 1bc:	0a 04 e0 47 	mov	v0,s1
 1c0:	a9 ff ff c3 	br	68 <iterate_dir+0x68>
 1c4:	00 00 fe 2f 	unop	
 1c8:	1f 04 ff 47 	nop	
 1cc:	00 00 fe 2f 	unop	
 1d0:	40 00 61 a7 	ldq	t12,64(t0)
 1d4:	00 40 5b 6b 	jsr	ra,(t12),1d8 <iterate_dir+0x1d8>
 1d8:	00 00 ba 27 	ldah	gp,0(ra)
 1dc:	00 00 bd 23 	lda	gp,0(gp)
 1e0:	0a 04 e0 47 	mov	v0,s1
 1e4:	b2 ff ff c3 	br	b0 <iterate_dir+0xb0>
 1e8:	1f 04 ff 47 	nop	
 1ec:	00 00 fe 2f 	unop	
 1f0:	18 00 29 a6 	ldq	a1,24(s0)
 1f4:	00 00 7d a7 	ldq	t12,0(gp)
 1f8:	12 04 eb 47 	mov	s2,a2
 1fc:	10 04 ef 47 	mov	fp,a0
 200:	00 40 5b 6b 	jsr	ra,(t12),204 <iterate_dir+0x204>
 204:	00 00 ba 27 	ldah	gp,0(ra)
 208:	00 00 bd 23 	lda	gp,0(gp)
 20c:	b8 ff 1f f4 	bne	v0,f0 <iterate_dir+0xf0>
 210:	00 00 7d a7 	ldq	t12,0(gp)
 214:	15 04 ff 47 	clr	a5
 218:	14 04 ff 47 	clr	a4
 21c:	01 00 7f 22 	lda	a3,1
 220:	12 04 ef 47 	mov	fp,a2
 224:	11 04 eb 47 	mov	s2,a1
 228:	10 04 ec 47 	mov	s3,a0
 22c:	00 40 5b 6b 	jsr	ra,(t12),230 <iterate_dir+0x230>
 230:	00 00 ba 27 	ldah	gp,0(ra)
 234:	00 00 bd 23 	lda	gp,0(gp)
 238:	ad ff ff c3 	br	f0 <iterate_dir+0xf0>
 23c:	00 00 fe 2f 	unop	

0000000000000240 <fillonedir>:
 240:	00 00 bb 27 	ldah	gp,0(t12)
 244:	00 00 bd 23 	lda	gp,0(gp)
 248:	d0 ff de 23 	lda	sp,-48(sp)
 24c:	1f 04 ff 47 	nop	
 250:	18 00 7e b5 	stq	s2,24(sp)
 254:	0b 04 f0 47 	mov	a0,s2
 258:	20 00 9e b5 	stq	s3,32(sp)
 25c:	0c 04 f2 47 	mov	a2,s3
 260:	00 00 5e b7 	stq	ra,0(sp)
 264:	08 00 3e b5 	stq	s0,8(sp)
 268:	10 00 5e b5 	stq	s1,16(sp)
 26c:	18 00 50 a1 	ldl	s1,24(a0)
 270:	3f 00 40 f5 	bne	s1,370 <fillonedir+0x130>
 274:	10 00 50 a4 	ldq	t1,16(a0)
 278:	01 00 32 20 	lda	t0,1(a2)
 27c:	01 00 7f 20 	lda	t2,1
 280:	18 00 70 b0 	stl	t2,24(a0)
 284:	12 00 22 21 	lda	s0,18(t1)
 288:	01 04 21 41 	addq	s0,t0,t0
 28c:	50 00 88 a4 	ldq	t3,80(t7)
 290:	23 05 22 40 	subq	t0,t1,t2
 294:	a5 03 e3 43 	cmpult	zero,t2,t4
 298:	03 04 43 44 	or	t1,t2,t2
 29c:	21 05 25 40 	subq	t0,t4,t0
 2a0:	01 04 23 44 	or	t0,t2,t0
 2a4:	01 00 24 44 	and	t0,t3,t0
 2a8:	2d 00 20 f4 	bne	t0,360 <fillonedir+0x120>
 2ac:	01 04 ea 47 	mov	s1,t0
 2b0:	00 00 82 b6 	stq	a4,0(t1)
 2b4:	2a 00 20 f4 	bne	t0,360 <fillonedir+0x120>
 2b8:	01 04 ea 47 	mov	s1,t0
 2bc:	08 00 62 b6 	stq	a3,8(t1)
 2c0:	27 00 20 f4 	bne	t0,360 <fillonedir+0x120>
 2c4:	00 00 fe 2f 	unop	
 2c8:	10 00 42 20 	lda	t1,16(t1)
 2cc:	01 04 ea 47 	mov	s1,t0
 2d0:	23 76 40 4a 	zapnot	a2,0x3,t2
 2d4:	01 00 a2 2c 	ldq_u	t4,1(t1)
 2d8:	00 00 82 2c 	ldq_u	t3,0(t1)
 2dc:	e7 0a 62 48 	inswh	t2,t1,t6
 2e0:	66 03 62 48 	inswl	t2,t1,t5
 2e4:	45 0a a2 48 	mskwh	t4,t1,t4
 2e8:	44 02 82 48 	mskwl	t3,t1,t3
 2ec:	05 04 a7 44 	or	t4,t6,t4
 2f0:	04 04 86 44 	or	t3,t5,t3
 2f4:	01 00 a2 3c 	stq_u	t4,1(t1)
 2f8:	00 00 82 3c 	stq_u	t3,0(t1)
 2fc:	18 00 20 f4 	bne	t0,360 <fillonedir+0x120>
 300:	00 00 7d a7 	ldq	t12,0(gp)
 304:	10 04 e9 47 	mov	s0,a0
 308:	00 40 5b 6b 	jsr	ra,(t12),30c <fillonedir+0xcc>
 30c:	00 00 ba 27 	ldah	gp,0(ra)
 310:	00 00 bd 23 	lda	gp,0(gp)
 314:	12 00 00 f4 	bne	v0,360 <fillonedir+0x120>
 318:	09 04 2c 41 	addq	s0,s3,s0
 31c:	01 04 ea 47 	mov	s1,t0
 320:	00 00 49 2c 	ldq_u	t1,0(s0)
 324:	63 01 49 49 	insbl	s1,s0,t2
 328:	42 00 49 48 	mskbl	t1,s0,t1
 32c:	02 04 43 44 	or	t1,t2,t1
 330:	00 00 49 3c 	stq_u	t1,0(s0)
 334:	0a 00 20 f4 	bne	t0,360 <fillonedir+0x120>
 338:	00 04 ea 47 	mov	s1,v0
 33c:	00 00 5e a7 	ldq	ra,0(sp)
 340:	08 00 3e a5 	ldq	s0,8(sp)
 344:	10 00 5e a5 	ldq	s1,16(sp)
 348:	18 00 7e a5 	ldq	s2,24(sp)
 34c:	20 00 9e a5 	ldq	s3,32(sp)
 350:	30 00 de 23 	lda	sp,48(sp)
 354:	01 80 fa 6b 	ret
 358:	1f 04 ff 47 	nop	
 35c:	00 00 fe 2f 	unop	
 360:	f2 ff 3f 20 	lda	t0,-14
 364:	f2 ff 5f 21 	lda	s1,-14
 368:	18 00 2b b0 	stl	t0,24(s2)
 36c:	f2 ff ff c3 	br	338 <fillonedir+0xf8>
 370:	ea ff 5f 21 	lda	s1,-22
 374:	f0 ff ff c3 	br	338 <fillonedir+0xf8>
 378:	1f 04 ff 47 	nop	
 37c:	00 00 fe 2f 	unop	

0000000000000380 <verify_dirent_name>:
 380:	00 00 bb 27 	ldah	gp,0(t12)
 384:	00 00 bd 23 	lda	gp,0(gp)
 388:	e0 ff de 23 	lda	sp,-32(sp)
 38c:	12 04 f1 47 	mov	a1,a2
 390:	00 00 5e b7 	stq	ra,0(sp)
 394:	0a 00 20 e6 	beq	a1,3c0 <verify_dirent_name+0x40>
 398:	00 00 7d a7 	ldq	t12,0(gp)
 39c:	2f 00 3f 22 	lda	a1,47
 3a0:	00 40 5b 6b 	jsr	ra,(t12),3a4 <verify_dirent_name+0x24>
 3a4:	00 00 ba 27 	ldah	gp,0(ra)
 3a8:	00 00 bd 23 	lda	gp,0(gp)
 3ac:	1c 00 00 f4 	bne	v0,420 <verify_dirent_name+0xa0>
 3b0:	00 00 5e a7 	ldq	ra,0(sp)
 3b4:	20 00 de 23 	lda	sp,32(sp)
 3b8:	01 80 fa 6b 	ret
 3bc:	00 00 fe 2f 	unop	
 3c0:	00 00 3d 24 	ldah	t0,0(gp)
 3c4:	fb ff 1f 20 	lda	v0,-5
 3c8:	00 00 41 2c 	ldq_u	t1,0(t0)
 3cc:	00 00 61 20 	lda	t2,0(t0)
 3d0:	c4 00 43 48 	extbl	t1,t2,t3
 3d4:	f6 ff 9f f4 	bne	t3,3b0 <verify_dirent_name+0x30>
 3d8:	01 00 9f 20 	lda	t3,1
 3dc:	13 04 ff 47 	clr	a3
 3e0:	42 00 43 48 	mskbl	t1,t2,t1
 3e4:	09 00 5f 22 	lda	a2,9
 3e8:	63 01 83 48 	insbl	t3,t2,t2
 3ec:	94 00 3f 22 	lda	a1,148
 3f0:	03 04 62 44 	or	t2,t1,t2
 3f4:	00 00 61 3c 	stq_u	t2,0(t0)
 3f8:	00 00 1d 26 	ldah	a0,0(gp)
 3fc:	00 00 7d a7 	ldq	t12,0(gp)
 400:	10 00 1e b4 	stq	v0,16(sp)
 404:	00 00 10 22 	lda	a0,0(a0)
 408:	00 40 5b 6b 	jsr	ra,(t12),40c <verify_dirent_name+0x8c>
 40c:	00 00 ba 27 	ldah	gp,0(ra)
 410:	00 00 bd 23 	lda	gp,0(gp)
 414:	10 00 1e a4 	ldq	v0,16(sp)
 418:	e5 ff ff c3 	br	3b0 <verify_dirent_name+0x30>
 41c:	00 00 fe 2f 	unop	
 420:	00 00 3d 24 	ldah	t0,0(gp)
 424:	fb ff 1f 20 	lda	v0,-5
 428:	00 00 41 2c 	ldq_u	t1,0(t0)
 42c:	00 00 61 20 	lda	t2,0(t0)
 430:	c4 00 43 48 	extbl	t1,t2,t3
 434:	de ff 9f f4 	bne	t3,3b0 <verify_dirent_name+0x30>
 438:	01 00 9f 20 	lda	t3,1
 43c:	13 04 ff 47 	clr	a3
 440:	42 00 43 48 	mskbl	t1,t2,t1
 444:	09 00 5f 22 	lda	a2,9
 448:	63 01 83 48 	insbl	t3,t2,t2
 44c:	96 00 3f 22 	lda	a1,150
 450:	03 04 62 44 	or	t2,t1,t2
 454:	00 00 61 3c 	stq_u	t2,0(t0)
 458:	e7 ff ff c3 	br	3f8 <verify_dirent_name+0x78>
 45c:	00 00 fe 2f 	unop	

0000000000000460 <filldir>:
 460:	00 00 bb 27 	ldah	gp,0(t12)
 464:	00 00 bd 23 	lda	gp,0(gp)
 468:	c0 ff de 23 	lda	sp,-64(sp)
 46c:	1f 04 ff 47 	nop	
 470:	08 00 3e b5 	stq	s0,8(sp)
 474:	09 04 f1 47 	mov	a1,s0
 478:	28 00 be b5 	stq	s4,40(sp)
 47c:	0d 70 43 42 	addl	a2,0x1b,s4
 480:	18 00 7e b5 	stq	s2,24(sp)
 484:	0d f1 a0 45 	andnot	s4,0x7,s4
 488:	0b 04 f0 47 	mov	a0,s2
 48c:	11 04 f2 47 	mov	a2,a1
 490:	10 04 e9 47 	mov	s0,a0
 494:	0d 00 ed 43 	sextl	s4,s4
 498:	10 00 5e b5 	stq	s1,16(sp)
 49c:	0a 04 f2 47 	mov	a2,s1
 4a0:	20 00 9e b5 	stq	s3,32(sp)
 4a4:	0c 04 f5 47 	mov	a5,s3
 4a8:	30 00 de b5 	stq	s5,48(sp)
 4ac:	0e 04 f4 47 	mov	a4,s5
 4b0:	38 00 fe b5 	stq	fp,56(sp)
 4b4:	0f 04 f3 47 	mov	a3,fp
 4b8:	00 00 5e b7 	stq	ra,0(sp)
 4bc:	00 00 7d a7 	ldq	t12,0(gp)
 4c0:	00 40 5b 6b 	jsr	ra,(t12),4c4 <filldir+0x64>
 4c4:	00 00 ba 27 	ldah	gp,0(ra)
 4c8:	00 00 bd 23 	lda	gp,0(gp)
 4cc:	9c 00 00 f4 	bne	v0,740 <filldir+0x2e0>
 4d0:	ea ff 3f 20 	lda	t0,-22
 4d4:	20 00 ab a0 	ldl	t4,32(s2)
 4d8:	24 00 2b b0 	stl	t0,36(s2)
 4dc:	1f 04 ff 47 	nop	
 4e0:	a1 09 ad 40 	cmplt	t4,s4,t0
 4e4:	9c 00 20 f4 	bne	t0,758 <filldir+0x2f8>
 4e8:	18 00 4b a4 	ldq	t1,24(s2)
 4ec:	50 00 40 e4 	beq	t1,630 <filldir+0x1d0>
 4f0:	40 00 28 a4 	ldq	t0,64(t7)
 4f4:	08 00 21 a4 	ldq	t0,8(t0)
 4f8:	48 00 21 a0 	ldl	t0,72(t0)
 4fc:	01 90 20 44 	and	t0,0x4,t0
 500:	a1 03 e1 43 	cmpult	zero,t0,t0
 504:	92 00 20 f4 	bne	t0,750 <filldir+0x2f0>
 508:	17 00 22 20 	lda	t0,23(t1)
 50c:	50 00 68 a4 	ldq	t2,80(t7)
 510:	01 04 22 44 	or	t0,t1,t0
 514:	01 14 23 44 	or	t0,0x18,t0
 518:	01 00 23 44 	and	t0,t2,t0
 51c:	36 00 20 f4 	bne	t0,5f8 <filldir+0x198>
 520:	01 04 e0 47 	mov	v0,t0
 524:	08 00 e2 b5 	stq	fp,8(t1)
 528:	33 00 20 f4 	bne	t0,5f8 <filldir+0x198>
 52c:	00 00 fe 2f 	unop	
 530:	10 00 cb a4 	ldq	t5,16(s2)
 534:	01 04 ff 47 	clr	t0
 538:	00 00 c6 b5 	stq	s5,0(t5)
 53c:	2e 00 20 f4 	bne	t0,5f8 <filldir+0x198>
 540:	23 76 a0 49 	zapnot	s4,0x3,t2
 544:	10 00 46 20 	lda	t1,16(t5)
 548:	01 00 e2 2c 	ldq_u	t6,1(t1)
 54c:	00 00 82 2c 	ldq_u	t3,0(t1)
 550:	f7 0a 62 48 	inswh	t2,t1,t9
 554:	76 03 62 48 	inswl	t2,t1,t8
 558:	47 0a e2 48 	mskwh	t6,t1,t6
 55c:	44 02 82 48 	mskwl	t3,t1,t3
 560:	07 04 f7 44 	or	t6,t9,t6
 564:	04 04 96 44 	or	t3,t8,t3
 568:	01 00 e2 3c 	stq_u	t6,1(t1)
 56c:	00 00 82 3c 	stq_u	t3,0(t1)
 570:	21 00 20 f4 	bne	t0,5f8 <filldir+0x198>
 574:	00 00 fe 2f 	unop	
 578:	2c 17 87 49 	sll	s3,0x38,s3
 57c:	ff ff 4d 20 	lda	t1,-1(s4)
 580:	8c 17 87 49 	sra	s3,0x38,s3
 584:	02 04 c2 40 	addq	t5,t1,t1
 588:	00 00 62 2c 	ldq_u	t2,0(t1)
 58c:	64 01 82 49 	insbl	s3,t1,t3
 590:	43 00 62 48 	mskbl	t2,t1,t2
 594:	03 04 64 44 	or	t2,t3,t2
 598:	00 00 62 3c 	stq_u	t2,0(t1)
 59c:	16 00 20 f4 	bne	t0,5f8 <filldir+0x198>
 5a0:	12 04 ea 47 	mov	s1,a2
 5a4:	12 00 46 20 	lda	t1,18(t5)
 5a8:	a1 f7 40 41 	cmpule	s1,0x7,t0
 5ac:	24 00 20 f4 	bne	t0,640 <filldir+0x1e0>
 5b0:	07 04 ff 47 	clr	t6
 5b4:	06 00 e0 c3 	br	5d0 <filldir+0x170>
 5b8:	1f 04 ff 47 	nop	
 5bc:	00 00 fe 2f 	unop	
 5c0:	08 00 42 20 	lda	t1,8(t1)
 5c4:	08 00 29 21 	lda	s0,8(s0)
 5c8:	a1 f7 40 42 	cmpule	a2,0x7,t0
 5cc:	1c 00 20 f4 	bne	t0,640 <filldir+0x1e0>
 5d0:	00 00 29 2c 	ldq_u	t0,0(s0)
 5d4:	07 00 89 2c 	ldq_u	t3,7(s0)
 5d8:	03 04 e7 47 	mov	t6,t2
 5dc:	c1 06 29 48 	extql	t0,s0,t0
 5e0:	44 0f 89 48 	extqh	t3,s0,t3
 5e4:	01 04 24 44 	or	t0,t3,t0
 5e8:	00 00 22 b4 	stq	t0,0(t1)
 5ec:	00 00 fe 2f 	unop	
 5f0:	f8 ff 52 22 	lda	a2,-8(a2)
 5f4:	f2 ff 7f e4 	beq	t2,5c0 <filldir+0x160>
 5f8:	f2 ff 3f 20 	lda	t0,-14
 5fc:	f2 ff 1f 20 	lda	v0,-14
 600:	24 00 2b b0 	stl	t0,36(s2)
 604:	1f 04 ff 47 	nop	
 608:	00 00 5e a7 	ldq	ra,0(sp)
 60c:	08 00 3e a5 	ldq	s0,8(sp)
 610:	10 00 5e a5 	ldq	s1,16(sp)
 614:	18 00 7e a5 	ldq	s2,24(sp)
 618:	20 00 9e a5 	ldq	s3,32(sp)
 61c:	28 00 be a5 	ldq	s4,40(sp)
 620:	30 00 de a5 	ldq	s5,48(sp)
 624:	38 00 fe a5 	ldq	fp,56(sp)
 628:	40 00 de 23 	lda	sp,64(sp)
 62c:	01 80 fa 6b 	ret
 630:	50 00 28 a4 	ldq	t0,80(t7)
 634:	01 f0 23 44 	and	t0,0x1f,t0
 638:	bd ff 3f e4 	beq	t0,530 <filldir+0xd0>
 63c:	ee ff ff c3 	br	5f8 <filldir+0x198>
 640:	a1 77 40 42 	cmpule	a2,0x3,t0
 644:	0c 00 20 f4 	bne	t0,678 <filldir+0x218>
 648:	00 00 29 2c 	ldq_u	t0,0(s0)
 64c:	03 00 89 2c 	ldq_u	t3,3(s0)
 650:	03 04 ff 47 	clr	t2
 654:	c1 04 29 48 	extll	t0,s0,t0
 658:	44 0d 89 48 	extlh	t3,s0,t3
 65c:	01 04 24 44 	or	t0,t3,t0
 660:	00 00 22 b0 	stl	t0,0(t1)
 664:	e4 ff 7f f4 	bne	t2,5f8 <filldir+0x198>
 668:	04 00 42 20 	lda	t1,4(t1)
 66c:	04 00 29 21 	lda	s0,4(s0)
 670:	fc ff 52 22 	lda	a2,-4(a2)
 674:	1f 04 ff 47 	nop	
 678:	a1 37 40 42 	cmpule	a2,0x1,t0
 67c:	15 00 20 f4 	bne	t0,6d4 <filldir+0x274>
 680:	00 00 29 2c 	ldq_u	t0,0(s0)
 684:	01 00 89 2c 	ldq_u	t3,1(s0)
 688:	03 04 ff 47 	clr	t2
 68c:	c1 02 29 48 	extwl	t0,s0,t0
 690:	44 0b 89 48 	extwh	t3,s0,t3
 694:	01 04 24 44 	or	t0,t3,t0
 698:	21 76 20 48 	zapnot	t0,0x3,t0
 69c:	01 00 e2 2c 	ldq_u	t6,1(t1)
 6a0:	00 00 82 2c 	ldq_u	t3,0(t1)
 6a4:	f7 0a 22 48 	inswh	t0,t1,t9
 6a8:	76 03 22 48 	inswl	t0,t1,t8
 6ac:	47 0a e2 48 	mskwh	t6,t1,t6
 6b0:	44 02 82 48 	mskwl	t3,t1,t3
 6b4:	07 04 f7 44 	or	t6,t9,t6
 6b8:	04 04 96 44 	or	t3,t8,t3
 6bc:	01 00 e2 3c 	stq_u	t6,1(t1)
 6c0:	00 00 82 3c 	stq_u	t3,0(t1)
 6c4:	cc ff 7f f4 	bne	t2,5f8 <filldir+0x198>
 6c8:	02 00 42 20 	lda	t1,2(t1)
 6cc:	02 00 29 21 	lda	s0,2(s0)
 6d0:	fe ff 52 22 	lda	a2,-2(a2)
 6d4:	0a 00 40 e6 	beq	a2,700 <filldir+0x2a0>
 6d8:	00 00 69 2c 	ldq_u	t2,0(s0)
 6dc:	01 04 ff 47 	clr	t0
 6e0:	c9 00 69 48 	extbl	t2,s0,s0
 6e4:	00 00 62 2c 	ldq_u	t2,0(t1)
 6e8:	64 01 22 49 	insbl	s0,t1,t3
 6ec:	43 00 62 48 	mskbl	t2,t1,t2
 6f0:	03 04 64 44 	or	t2,t3,t2
 6f4:	00 00 62 3c 	stq_u	t2,0(t1)
 6f8:	bf ff 3f f4 	bne	t0,5f8 <filldir+0x198>
 6fc:	01 00 42 20 	lda	t1,1(t1)
 700:	01 04 ff 47 	clr	t0
 704:	00 00 62 2c 	ldq_u	t2,0(t1)
 708:	64 01 22 48 	insbl	t0,t1,t3
 70c:	43 00 62 48 	mskbl	t2,t1,t2
 710:	03 04 64 44 	or	t2,t3,t2
 714:	00 00 62 3c 	stq_u	t2,0(t1)
 718:	b7 ff 3f f4 	bne	t0,5f8 <filldir+0x198>
 71c:	00 00 fe 2f 	unop	
 720:	01 04 cd 40 	addq	t5,s4,t0
 724:	25 01 ad 40 	subl	t4,s4,t4
 728:	18 00 cb b4 	stq	t5,24(s2)
 72c:	10 00 2b b4 	stq	t0,16(s2)
 730:	20 00 ab b0 	stl	t4,32(s2)
 734:	b4 ff ff c3 	br	608 <filldir+0x1a8>
 738:	1f 04 ff 47 	nop	
 73c:	00 00 fe 2f 	unop	
 740:	24 00 0b b0 	stl	v0,36(s2)
 744:	b0 ff ff c3 	br	608 <filldir+0x1a8>
 748:	1f 04 ff 47 	nop	
 74c:	00 00 fe 2f 	unop	
 750:	fc ff 1f 20 	lda	v0,-4
 754:	ac ff ff c3 	br	608 <filldir+0x1a8>
 758:	ea ff 1f 20 	lda	v0,-22
 75c:	aa ff ff c3 	br	608 <filldir+0x1a8>

0000000000000760 <filldir64>:
 760:	00 00 bb 27 	ldah	gp,0(t12)
 764:	00 00 bd 23 	lda	gp,0(gp)
 768:	c0 ff de 23 	lda	sp,-64(sp)
 76c:	1f 04 ff 47 	nop	
 770:	08 00 3e b5 	stq	s0,8(sp)
 774:	09 04 f1 47 	mov	a1,s0
 778:	20 00 9e b5 	stq	s3,32(sp)
 77c:	0c 70 43 42 	addl	a2,0x1b,s3
 780:	18 00 7e b5 	stq	s2,24(sp)
 784:	0c f1 80 45 	andnot	s3,0x7,s3
 788:	0b 04 f0 47 	mov	a0,s2
 78c:	11 04 f2 47 	mov	a2,a1
 790:	10 04 e9 47 	mov	s0,a0
 794:	0c 00 ec 43 	sextl	s3,s3
 798:	10 00 5e b5 	stq	s1,16(sp)
 79c:	0a 04 f2 47 	mov	a2,s1
 7a0:	28 00 be b5 	stq	s4,40(sp)
 7a4:	0d 04 f5 47 	mov	a5,s4
 7a8:	30 00 de b5 	stq	s5,48(sp)
 7ac:	0e 04 f4 47 	mov	a4,s5
 7b0:	38 00 fe b5 	stq	fp,56(sp)
 7b4:	0f 04 f3 47 	mov	a3,fp
 7b8:	00 00 5e b7 	stq	ra,0(sp)
 7bc:	00 00 7d a7 	ldq	t12,0(gp)
 7c0:	00 40 5b 6b 	jsr	ra,(t12),7c4 <filldir64+0x64>
 7c4:	00 00 ba 27 	ldah	gp,0(ra)
 7c8:	00 00 bd 23 	lda	gp,0(gp)
 7cc:	98 00 00 f4 	bne	v0,a30 <filldir64+0x2d0>
 7d0:	ea ff 3f 20 	lda	t0,-22
 7d4:	20 00 ab a0 	ldl	t4,32(s2)
 7d8:	24 00 2b b0 	stl	t0,36(s2)
 7dc:	1f 04 ff 47 	nop	
 7e0:	a1 09 ac 40 	cmplt	t4,s3,t0
 7e4:	98 00 20 f4 	bne	t0,a48 <filldir64+0x2e8>
 7e8:	18 00 4b a4 	ldq	t1,24(s2)
 7ec:	4c 00 40 e4 	beq	t1,920 <filldir64+0x1c0>
 7f0:	40 00 28 a4 	ldq	t0,64(t7)
 7f4:	08 00 21 a4 	ldq	t0,8(t0)
 7f8:	48 00 21 a0 	ldl	t0,72(t0)
 7fc:	01 90 20 44 	and	t0,0x4,t0
 800:	a1 03 e1 43 	cmpult	zero,t0,t0
 804:	8e 00 20 f4 	bne	t0,a40 <filldir64+0x2e0>
 808:	17 00 22 20 	lda	t0,23(t1)
 80c:	50 00 68 a4 	ldq	t2,80(t7)
 810:	01 04 22 44 	or	t0,t1,t0
 814:	01 14 23 44 	or	t0,0x18,t0
 818:	01 00 23 44 	and	t0,t2,t0
 81c:	32 00 20 f4 	bne	t0,8e8 <filldir64+0x188>
 820:	01 04 e0 47 	mov	v0,t0
 824:	08 00 e2 b5 	stq	fp,8(t1)
 828:	2f 00 20 f4 	bne	t0,8e8 <filldir64+0x188>
 82c:	00 00 fe 2f 	unop	
 830:	10 00 cb a4 	ldq	t5,16(s2)
 834:	01 04 ff 47 	clr	t0
 838:	00 00 c6 b5 	stq	s5,0(t5)
 83c:	2a 00 20 f4 	bne	t0,8e8 <filldir64+0x188>
 840:	23 76 80 49 	zapnot	s3,0x3,t2
 844:	10 00 46 20 	lda	t1,16(t5)
 848:	01 00 e2 2c 	ldq_u	t6,1(t1)
 84c:	00 00 82 2c 	ldq_u	t3,0(t1)
 850:	f7 0a 62 48 	inswh	t2,t1,t9
 854:	76 03 62 48 	inswl	t2,t1,t8
 858:	47 0a e2 48 	mskwh	t6,t1,t6
 85c:	44 02 82 48 	mskwl	t3,t1,t3
 860:	07 04 f7 44 	or	t6,t9,t6
 864:	04 04 96 44 	or	t3,t8,t3
 868:	01 00 e2 3c 	stq_u	t6,1(t1)
 86c:	00 00 82 3c 	stq_u	t3,0(t1)
 870:	1d 00 20 f4 	bne	t0,8e8 <filldir64+0x188>
 874:	00 00 fe 2f 	unop	
 878:	0d f0 bf 45 	and	s4,0xff,s4
 87c:	12 00 46 20 	lda	t1,18(t5)
 880:	00 00 62 2c 	ldq_u	t2,0(t1)
 884:	64 01 a2 49 	insbl	s4,t1,t3
 888:	43 00 62 48 	mskbl	t2,t1,t2
 88c:	03 04 64 44 	or	t2,t3,t2
 890:	00 00 62 3c 	stq_u	t2,0(t1)
 894:	14 00 20 f4 	bne	t0,8e8 <filldir64+0x188>
 898:	12 04 ea 47 	mov	s1,a2
 89c:	13 00 46 20 	lda	t1,19(t5)
 8a0:	a1 f7 40 41 	cmpule	s1,0x7,t0
 8a4:	22 00 20 f4 	bne	t0,930 <filldir64+0x1d0>
 8a8:	07 04 ff 47 	clr	t6
 8ac:	04 00 e0 c3 	br	8c0 <filldir64+0x160>
 8b0:	08 00 42 20 	lda	t1,8(t1)
 8b4:	08 00 29 21 	lda	s0,8(s0)
 8b8:	a1 f7 40 42 	cmpule	a2,0x7,t0
 8bc:	1c 00 20 f4 	bne	t0,930 <filldir64+0x1d0>
 8c0:	00 00 29 2c 	ldq_u	t0,0(s0)
 8c4:	07 00 89 2c 	ldq_u	t3,7(s0)
 8c8:	03 04 e7 47 	mov	t6,t2
 8cc:	c1 06 29 48 	extql	t0,s0,t0
 8d0:	44 0f 89 48 	extqh	t3,s0,t3
 8d4:	01 04 24 44 	or	t0,t3,t0
 8d8:	00 00 22 b4 	stq	t0,0(t1)
 8dc:	00 00 fe 2f 	unop	
 8e0:	f8 ff 52 22 	lda	a2,-8(a2)
 8e4:	f2 ff 7f e4 	beq	t2,8b0 <filldir64+0x150>
 8e8:	f2 ff 3f 20 	lda	t0,-14
 8ec:	f2 ff 1f 20 	lda	v0,-14
 8f0:	24 00 2b b0 	stl	t0,36(s2)
 8f4:	1f 04 ff 47 	nop	
 8f8:	00 00 5e a7 	ldq	ra,0(sp)
 8fc:	08 00 3e a5 	ldq	s0,8(sp)
 900:	10 00 5e a5 	ldq	s1,16(sp)
 904:	18 00 7e a5 	ldq	s2,24(sp)
 908:	20 00 9e a5 	ldq	s3,32(sp)
 90c:	28 00 be a5 	ldq	s4,40(sp)
 910:	30 00 de a5 	ldq	s5,48(sp)
 914:	38 00 fe a5 	ldq	fp,56(sp)
 918:	40 00 de 23 	lda	sp,64(sp)
 91c:	01 80 fa 6b 	ret
 920:	50 00 28 a4 	ldq	t0,80(t7)
 924:	01 f0 23 44 	and	t0,0x1f,t0
 928:	c1 ff 3f e4 	beq	t0,830 <filldir64+0xd0>
 92c:	ee ff ff c3 	br	8e8 <filldir64+0x188>
 930:	a1 77 40 42 	cmpule	a2,0x3,t0
 934:	0c 00 20 f4 	bne	t0,968 <filldir64+0x208>
 938:	00 00 29 2c 	ldq_u	t0,0(s0)
 93c:	03 00 89 2c 	ldq_u	t3,3(s0)
 940:	03 04 ff 47 	clr	t2
 944:	c1 04 29 48 	extll	t0,s0,t0
 948:	44 0d 89 48 	extlh	t3,s0,t3
 94c:	01 04 24 44 	or	t0,t3,t0
 950:	00 00 22 b0 	stl	t0,0(t1)
 954:	e4 ff 7f f4 	bne	t2,8e8 <filldir64+0x188>
 958:	04 00 42 20 	lda	t1,4(t1)
 95c:	04 00 29 21 	lda	s0,4(s0)
 960:	fc ff 52 22 	lda	a2,-4(a2)
 964:	1f 04 ff 47 	nop	
 968:	a1 37 40 42 	cmpule	a2,0x1,t0
 96c:	15 00 20 f4 	bne	t0,9c4 <filldir64+0x264>
 970:	00 00 29 2c 	ldq_u	t0,0(s0)
 974:	01 00 89 2c 	ldq_u	t3,1(s0)
 978:	03 04 ff 47 	clr	t2
 97c:	c1 02 29 48 	extwl	t0,s0,t0
 980:	44 0b 89 48 	extwh	t3,s0,t3
 984:	01 04 24 44 	or	t0,t3,t0
 988:	21 76 20 48 	zapnot	t0,0x3,t0
 98c:	01 00 e2 2c 	ldq_u	t6,1(t1)
 990:	00 00 82 2c 	ldq_u	t3,0(t1)
 994:	f7 0a 22 48 	inswh	t0,t1,t9
 998:	76 03 22 48 	inswl	t0,t1,t8
 99c:	47 0a e2 48 	mskwh	t6,t1,t6
 9a0:	44 02 82 48 	mskwl	t3,t1,t3
 9a4:	07 04 f7 44 	or	t6,t9,t6
 9a8:	04 04 96 44 	or	t3,t8,t3
 9ac:	01 00 e2 3c 	stq_u	t6,1(t1)
 9b0:	00 00 82 3c 	stq_u	t3,0(t1)
 9b4:	cc ff 7f f4 	bne	t2,8e8 <filldir64+0x188>
 9b8:	02 00 42 20 	lda	t1,2(t1)
 9bc:	02 00 29 21 	lda	s0,2(s0)
 9c0:	fe ff 52 22 	lda	a2,-2(a2)
 9c4:	0a 00 40 e6 	beq	a2,9f0 <filldir64+0x290>
 9c8:	00 00 69 2c 	ldq_u	t2,0(s0)
 9cc:	01 04 ff 47 	clr	t0
 9d0:	c9 00 69 48 	extbl	t2,s0,s0
 9d4:	00 00 62 2c 	ldq_u	t2,0(t1)
 9d8:	64 01 22 49 	insbl	s0,t1,t3
 9dc:	43 00 62 48 	mskbl	t2,t1,t2
 9e0:	03 04 64 44 	or	t2,t3,t2
 9e4:	00 00 62 3c 	stq_u	t2,0(t1)
 9e8:	bf ff 3f f4 	bne	t0,8e8 <filldir64+0x188>
 9ec:	01 00 42 20 	lda	t1,1(t1)
 9f0:	01 04 ff 47 	clr	t0
 9f4:	00 00 62 2c 	ldq_u	t2,0(t1)
 9f8:	64 01 22 48 	insbl	t0,t1,t3
 9fc:	43 00 62 48 	mskbl	t2,t1,t2
 a00:	03 04 64 44 	or	t2,t3,t2
 a04:	00 00 62 3c 	stq_u	t2,0(t1)
 a08:	b7 ff 3f f4 	bne	t0,8e8 <filldir64+0x188>
 a0c:	00 00 fe 2f 	unop	
 a10:	01 04 cc 40 	addq	t5,s3,t0
 a14:	25 01 ac 40 	subl	t4,s3,t4
 a18:	18 00 cb b4 	stq	t5,24(s2)
 a1c:	10 00 2b b4 	stq	t0,16(s2)
 a20:	20 00 ab b0 	stl	t4,32(s2)
 a24:	b4 ff ff c3 	br	8f8 <filldir64+0x198>
 a28:	1f 04 ff 47 	nop	
 a2c:	00 00 fe 2f 	unop	
 a30:	24 00 0b b0 	stl	v0,36(s2)
 a34:	b0 ff ff c3 	br	8f8 <filldir64+0x198>
 a38:	1f 04 ff 47 	nop	
 a3c:	00 00 fe 2f 	unop	
 a40:	fc ff 1f 20 	lda	v0,-4
 a44:	ac ff ff c3 	br	8f8 <filldir64+0x198>
 a48:	ea ff 1f 20 	lda	v0,-22
 a4c:	aa ff ff c3 	br	8f8 <filldir64+0x198>

0000000000000a50 <__se_sys_old_readdir>:
 a50:	00 00 bb 27 	ldah	gp,0(t12)
 a54:	00 00 bd 23 	lda	gp,0(gp)
 a58:	c0 ff de 23 	lda	sp,-64(sp)
 a5c:	00 00 7d a7 	ldq	t12,0(gp)
 a60:	08 00 3e b5 	stq	s0,8(sp)
 a64:	10 00 f0 43 	sextl	a0,a0
 a68:	10 00 5e b5 	stq	s1,16(sp)
 a6c:	0a 04 f1 47 	mov	a1,s1
 a70:	18 00 7e b5 	stq	s2,24(sp)
 a74:	00 00 5e b7 	stq	ra,0(sp)
 a78:	00 40 5b 6b 	jsr	ra,(t12),a7c <__se_sys_old_readdir+0x2c>
 a7c:	00 00 ba 27 	ldah	gp,0(ra)
 a80:	28 00 fe b7 	stq	zero,40(sp)
 a84:	00 00 bd 23 	lda	gp,0(gp)
 a88:	0b 71 00 44 	andnot	v0,0x3,s2
 a8c:	00 00 fe 2f 	unop	
 a90:	00 00 3d 24 	ldah	t0,0(gp)
 a94:	09 00 e0 43 	sextl	v0,s0
 a98:	00 00 21 20 	lda	t0,0(t0)
 a9c:	f7 ff 1f 20 	lda	v0,-9
 aa0:	38 00 fe b7 	stq	zero,56(sp)
 aa4:	20 00 3e b4 	stq	t0,32(sp)
 aa8:	30 00 5e b5 	stq	s1,48(sp)
 aac:	0d 00 60 e5 	beq	s2,ae4 <__se_sys_old_readdir+0x94>
 ab0:	20 00 3e 22 	lda	a1,32(sp)
 ab4:	10 04 eb 47 	mov	s2,a0
 ab8:	00 00 7d a7 	ldq	t12,0(gp)
 abc:	00 40 5b 6b 	jsr	ra,(t12),ac0 <__se_sys_old_readdir+0x70>
 ac0:	00 00 ba 27 	ldah	gp,0(ra)
 ac4:	00 00 bd 23 	lda	gp,0(gp)
 ac8:	0a 04 e0 47 	mov	v0,s1
 acc:	38 00 1e a0 	ldl	v0,56(sp)
 ad0:	01 50 20 45 	and	s0,0x2,t0
 ad4:	ca 04 00 44 	cmovne	v0,v0,s1
 ad8:	11 00 20 f4 	bne	t0,b20 <__se_sys_old_readdir+0xd0>
 adc:	08 00 20 f1 	blbs	s0,b00 <__se_sys_old_readdir+0xb0>
 ae0:	00 04 ea 47 	mov	s1,v0
 ae4:	00 00 5e a7 	ldq	ra,0(sp)
 ae8:	08 00 3e a5 	ldq	s0,8(sp)
 aec:	1f 04 ff 47 	nop	
 af0:	10 00 5e a5 	ldq	s1,16(sp)
 af4:	18 00 7e a5 	ldq	s2,24(sp)
 af8:	40 00 de 23 	lda	sp,64(sp)
 afc:	01 80 fa 6b 	ret
 b00:	00 00 7d a7 	ldq	t12,0(gp)
 b04:	10 04 eb 47 	mov	s2,a0
 b08:	00 40 5b 6b 	jsr	ra,(t12),b0c <__se_sys_old_readdir+0xbc>
 b0c:	00 00 ba 27 	ldah	gp,0(ra)
 b10:	00 00 bd 23 	lda	gp,0(gp)
 b14:	f2 ff ff c3 	br	ae0 <__se_sys_old_readdir+0x90>
 b18:	1f 04 ff 47 	nop	
 b1c:	00 00 fe 2f 	unop	
 b20:	00 00 7d a7 	ldq	t12,0(gp)
 b24:	10 04 eb 47 	mov	s2,a0
 b28:	00 40 5b 6b 	jsr	ra,(t12),b2c <__se_sys_old_readdir+0xdc>
 b2c:	00 00 ba 27 	ldah	gp,0(ra)
 b30:	00 00 bd 23 	lda	gp,0(gp)
 b34:	ea ff 3f e1 	blbc	s0,ae0 <__se_sys_old_readdir+0x90>
 b38:	f1 ff ff c3 	br	b00 <__se_sys_old_readdir+0xb0>
 b3c:	00 00 fe 2f 	unop	

0000000000000b40 <__se_sys_getdents>:
 b40:	00 00 bb 27 	ldah	gp,0(t12)
 b44:	00 00 bd 23 	lda	gp,0(gp)
 b48:	22 f6 41 4a 	zapnot	a2,0xf,t1
 b4c:	a0 ff de 23 	lda	sp,-96(sp)
 b50:	a3 03 e2 43 	cmpult	zero,t1,t2
 b54:	01 04 22 42 	addq	a1,t1,t0
 b58:	21 05 23 40 	subq	t0,t2,t0
 b5c:	02 04 22 46 	or	a1,t1,t1
 b60:	10 00 5e b5 	stq	s1,16(sp)
 b64:	01 04 22 44 	or	t0,t1,t0
 b68:	18 00 7e b5 	stq	s2,24(sp)
 b6c:	00 00 5d 24 	ldah	t1,0(gp)
 b70:	00 00 5e b7 	stq	ra,0(sp)
 b74:	00 00 42 20 	lda	t1,0(t1)
 b78:	08 00 3e b5 	stq	s0,8(sp)
 b7c:	0a 04 f2 47 	mov	a2,s1
 b80:	20 00 9e b5 	stq	s3,32(sp)
 b84:	10 00 f0 43 	sextl	a0,a0
 b88:	50 00 fe b7 	stq	zero,80(sp)
 b8c:	f2 ff 7f 21 	lda	s2,-14
 b90:	50 00 68 a4 	ldq	t2,80(t7)
 b94:	38 00 fe b7 	stq	zero,56(sp)
 b98:	48 00 fe b7 	stq	zero,72(sp)
 b9c:	01 00 23 44 	and	t0,t2,t0
 ba0:	30 00 5e b4 	stq	t1,48(sp)
 ba4:	40 00 3e b6 	stq	a1,64(sp)
 ba8:	50 00 5e b2 	stl	a2,80(sp)
 bac:	22 00 20 f4 	bne	t0,c38 <__se_sys_getdents+0xf8>
 bb0:	00 00 7d a7 	ldq	t12,0(gp)
 bb4:	1f 04 ff 47 	nop	
 bb8:	00 40 5b 6b 	jsr	ra,(t12),bbc <__se_sys_getdents+0x7c>
 bbc:	00 00 ba 27 	ldah	gp,0(ra)
 bc0:	00 00 bd 23 	lda	gp,0(gp)
 bc4:	0c 71 00 44 	andnot	v0,0x3,s3
 bc8:	09 00 e0 43 	sextl	v0,s0
 bcc:	41 00 80 e5 	beq	s3,cd4 <__se_sys_getdents+0x194>
 bd0:	30 00 3e 22 	lda	a1,48(sp)
 bd4:	10 04 ec 47 	mov	s3,a0
 bd8:	00 00 7d a7 	ldq	t12,0(gp)
 bdc:	00 40 5b 6b 	jsr	ra,(t12),be0 <__se_sys_getdents+0xa0>
 be0:	00 00 ba 27 	ldah	gp,0(ra)
 be4:	00 00 bd 23 	lda	gp,0(gp)
 be8:	54 00 3e a0 	ldl	t0,84(sp)
 bec:	48 00 7e a4 	ldq	t2,72(sp)
 bf0:	c0 08 01 44 	cmovge	v0,t0,v0
 bf4:	2e 00 60 e4 	beq	t2,cb0 <__se_sys_getdents+0x170>
 bf8:	0f 00 43 20 	lda	t1,15(t2)
 bfc:	08 00 23 20 	lda	t0,8(t2)
 c00:	01 04 41 44 	or	t1,t0,t0
 c04:	50 00 48 a4 	ldq	t1,80(t7)
 c08:	01 14 21 44 	or	t0,0x8,t0
 c0c:	1f 04 ff 47 	nop	
 c10:	01 00 22 44 	and	t0,t1,t0
 c14:	04 00 20 f4 	bne	t0,c28 <__se_sys_getdents+0xe8>
 c18:	38 00 5e a4 	ldq	t1,56(sp)
 c1c:	08 00 43 b4 	stq	t1,8(t2)
 c20:	27 00 20 e4 	beq	t0,cc0 <__se_sys_getdents+0x180>
 c24:	00 00 fe 2f 	unop	
 c28:	01 50 20 45 	and	s0,0x2,t0
 c2c:	0c 00 20 f4 	bne	t0,c60 <__se_sys_getdents+0x120>
 c30:	1f 04 ff 47 	nop	
 c34:	10 00 20 f1 	blbs	s0,c78 <__se_sys_getdents+0x138>
 c38:	00 04 eb 47 	mov	s2,v0
 c3c:	00 00 5e a7 	ldq	ra,0(sp)
 c40:	08 00 3e a5 	ldq	s0,8(sp)
 c44:	10 00 5e a5 	ldq	s1,16(sp)
 c48:	18 00 7e a5 	ldq	s2,24(sp)
 c4c:	20 00 9e a5 	ldq	s3,32(sp)
 c50:	60 00 de 23 	lda	sp,96(sp)
 c54:	01 80 fa 6b 	ret
 c58:	1f 04 ff 47 	nop	
 c5c:	00 00 fe 2f 	unop	
 c60:	00 00 7d a7 	ldq	t12,0(gp)
 c64:	10 04 ec 47 	mov	s3,a0
 c68:	00 40 5b 6b 	jsr	ra,(t12),c6c <__se_sys_getdents+0x12c>
 c6c:	00 00 ba 27 	ldah	gp,0(ra)
 c70:	00 00 bd 23 	lda	gp,0(gp)
 c74:	f0 ff 3f e1 	blbc	s0,c38 <__se_sys_getdents+0xf8>
 c78:	00 00 7d a7 	ldq	t12,0(gp)
 c7c:	10 04 ec 47 	mov	s3,a0
 c80:	00 40 5b 6b 	jsr	ra,(t12),c84 <__se_sys_getdents+0x144>
 c84:	00 00 ba 27 	ldah	gp,0(ra)
 c88:	08 00 3e a5 	ldq	s0,8(sp)
 c8c:	1f 04 ff 47 	nop	
 c90:	00 04 eb 47 	mov	s2,v0
 c94:	00 00 5e a7 	ldq	ra,0(sp)
 c98:	10 00 5e a5 	ldq	s1,16(sp)
 c9c:	18 00 7e a5 	ldq	s2,24(sp)
 ca0:	20 00 9e a5 	ldq	s3,32(sp)
 ca4:	00 00 bd 23 	lda	gp,0(gp)
 ca8:	60 00 de 23 	lda	sp,96(sp)
 cac:	01 80 fa 6b 	ret
 cb0:	0b 04 e0 47 	mov	v0,s2
 cb4:	01 50 20 45 	and	s0,0x2,t0
 cb8:	dd ff 3f e4 	beq	t0,c30 <__se_sys_getdents+0xf0>
 cbc:	e8 ff ff c3 	br	c60 <__se_sys_getdents+0x120>
 cc0:	50 00 7e a1 	ldl	s2,80(sp)
 cc4:	01 50 20 45 	and	s0,0x2,t0
 cc8:	2b 01 4b 41 	subl	s1,s2,s2
 ccc:	d8 ff 3f e4 	beq	t0,c30 <__se_sys_getdents+0xf0>
 cd0:	e3 ff ff c3 	br	c60 <__se_sys_getdents+0x120>
 cd4:	f7 ff 7f 21 	lda	s2,-9
 cd8:	d7 ff ff c3 	br	c38 <__se_sys_getdents+0xf8>
 cdc:	00 00 fe 2f 	unop	

0000000000000ce0 <ksys_getdents64>:
 ce0:	00 00 bb 27 	ldah	gp,0(t12)
 ce4:	00 00 bd 23 	lda	gp,0(gp)
 ce8:	21 f6 41 4a 	zapnot	a2,0xf,t0
 cec:	a0 ff de 23 	lda	sp,-96(sp)
 cf0:	08 00 3e b5 	stq	s0,8(sp)
 cf4:	a2 03 e1 43 	cmpult	zero,t0,t1
 cf8:	10 00 5e b5 	stq	s1,16(sp)
 cfc:	09 04 21 42 	addq	a1,t0,s0
 d00:	29 05 22 41 	subq	s0,t1,s0
 d04:	01 04 21 46 	or	a1,t0,t0
 d08:	20 00 9e b5 	stq	s3,32(sp)
 d0c:	09 04 21 45 	or	s0,t0,s0
 d10:	00 00 5e b7 	stq	ra,0(sp)
 d14:	00 00 3d 24 	ldah	t0,0(gp)
 d18:	18 00 7e b5 	stq	s2,24(sp)
 d1c:	00 00 21 20 	lda	t0,0(t0)
 d20:	28 00 be b5 	stq	s4,40(sp)
 d24:	0c 04 f2 47 	mov	a2,s3
 d28:	50 00 fe b7 	stq	zero,80(sp)
 d2c:	f2 ff 5f 21 	lda	s1,-14
 d30:	50 00 48 a4 	ldq	t1,80(t7)
 d34:	38 00 fe b7 	stq	zero,56(sp)
 d38:	48 00 fe b7 	stq	zero,72(sp)
 d3c:	09 00 22 45 	and	s0,t1,s0
 d40:	30 00 3e b4 	stq	t0,48(sp)
 d44:	40 00 3e b6 	stq	a1,64(sp)
 d48:	50 00 5e b2 	stl	a2,80(sp)
 d4c:	1a 00 20 f5 	bne	s0,db8 <ksys_getdents64+0xd8>
 d50:	00 00 7d a7 	ldq	t12,0(gp)
 d54:	f7 ff 5f 21 	lda	s1,-9
 d58:	00 40 5b 6b 	jsr	ra,(t12),d5c <ksys_getdents64+0x7c>
 d5c:	00 00 ba 27 	ldah	gp,0(ra)
 d60:	00 00 bd 23 	lda	gp,0(gp)
 d64:	0d 71 00 44 	andnot	v0,0x3,s4
 d68:	0b 00 e0 43 	sextl	v0,s2
 d6c:	12 00 a0 e5 	beq	s4,db8 <ksys_getdents64+0xd8>
 d70:	30 00 3e 22 	lda	a1,48(sp)
 d74:	10 04 ed 47 	mov	s4,a0
 d78:	00 00 7d a7 	ldq	t12,0(gp)
 d7c:	00 40 5b 6b 	jsr	ra,(t12),d80 <ksys_getdents64+0xa0>
 d80:	00 00 ba 27 	ldah	gp,0(ra)
 d84:	00 00 bd 23 	lda	gp,0(gp)
 d88:	54 00 5e a1 	ldl	s1,84(sp)
 d8c:	48 00 3e a4 	ldq	t0,72(sp)
 d90:	8a 08 00 44 	cmovlt	v0,v0,s1
 d94:	04 00 20 e4 	beq	t0,da8 <ksys_getdents64+0xc8>
 d98:	38 00 5e a4 	ldq	t1,56(sp)
 d9c:	08 00 41 b4 	stq	t1,8(t0)
 da0:	f2 ff 5f 21 	lda	s1,-14
 da4:	0e 00 20 e5 	beq	s0,de0 <ksys_getdents64+0x100>
 da8:	01 50 60 45 	and	s2,0x2,t0
 dac:	10 00 20 f4 	bne	t0,df0 <ksys_getdents64+0x110>
 db0:	1f 04 ff 47 	nop	
 db4:	14 00 60 f1 	blbs	s2,e08 <ksys_getdents64+0x128>
 db8:	00 04 ea 47 	mov	s1,v0
 dbc:	00 00 5e a7 	ldq	ra,0(sp)
 dc0:	08 00 3e a5 	ldq	s0,8(sp)
 dc4:	10 00 5e a5 	ldq	s1,16(sp)
 dc8:	18 00 7e a5 	ldq	s2,24(sp)
 dcc:	20 00 9e a5 	ldq	s3,32(sp)
 dd0:	28 00 be a5 	ldq	s4,40(sp)
 dd4:	1f 04 ff 47 	nop	
 dd8:	60 00 de 23 	lda	sp,96(sp)
 ddc:	01 80 fa 6b 	ret
 de0:	50 00 5e a1 	ldl	s1,80(sp)
 de4:	01 50 60 45 	and	s2,0x2,t0
 de8:	2a 01 8a 41 	subl	s3,s1,s1
 dec:	f0 ff 3f e4 	beq	t0,db0 <ksys_getdents64+0xd0>
 df0:	00 00 7d a7 	ldq	t12,0(gp)
 df4:	10 04 ed 47 	mov	s4,a0
 df8:	00 40 5b 6b 	jsr	ra,(t12),dfc <ksys_getdents64+0x11c>
 dfc:	00 00 ba 27 	ldah	gp,0(ra)
 e00:	00 00 bd 23 	lda	gp,0(gp)
 e04:	ec ff 7f e1 	blbc	s2,db8 <ksys_getdents64+0xd8>
 e08:	00 00 7d a7 	ldq	t12,0(gp)
 e0c:	10 04 ed 47 	mov	s4,a0
 e10:	00 40 5b 6b 	jsr	ra,(t12),e14 <ksys_getdents64+0x134>
 e14:	00 00 ba 27 	ldah	gp,0(ra)
 e18:	00 00 bd 23 	lda	gp,0(gp)
 e1c:	e6 ff ff c3 	br	db8 <ksys_getdents64+0xd8>

0000000000000e20 <__se_sys_getdents64>:
 e20:	00 00 bb 27 	ldah	gp,0(t12)
 e24:	00 00 bd 23 	lda	gp,0(gp)
 e28:	f0 ff de 23 	lda	sp,-16(sp)
 e2c:	12 00 f2 43 	sextl	a2,a2
 e30:	00 00 5e b7 	stq	ra,0(sp)
 e34:	10 00 f0 43 	sextl	a0,a0
 e38:	00 00 7d a7 	ldq	t12,0(gp)
 e3c:	00 40 5b 6b 	jsr	ra,(t12),e40 <__se_sys_getdents64+0x20>
 e40:	00 00 ba 27 	ldah	gp,0(ra)
 e44:	00 00 bd 23 	lda	gp,0(gp)
 e48:	00 00 5e a7 	ldq	ra,0(sp)
 e4c:	1f 04 ff 47 	nop	
 e50:	10 00 de 23 	lda	sp,16(sp)
 e54:	01 80 fa 6b 	ret
 e58:	1f 04 ff 47 	nop	
 e5c:	00 00 fe 2f 	unop	

  parent reply	other threads:[~2019-10-07  0:23 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-06 22:20 [PATCH] Convert filldir[64]() from __put_user() to unsafe_put_user() Guenter Roeck
2019-10-06 23:06 ` Linus Torvalds
2019-10-06 23:35   ` Linus Torvalds
2019-10-07  0:04     ` Guenter Roeck
2019-10-07  1:17       ` Linus Torvalds
2019-10-07  1:24         ` Al Viro
2019-10-07  2:06           ` Linus Torvalds
2019-10-07  2:50             ` Al Viro
2019-10-07  3:11               ` Linus Torvalds
2019-10-07 15:40                 ` David Laight
2019-10-07 18:11                   ` Linus Torvalds
2019-10-08  9:58                     ` David Laight
2019-10-07 17:34                 ` Al Viro
2019-10-07 18:13                   ` Linus Torvalds
2019-10-07 18:22                     ` Al Viro
2019-10-07 18:26                 ` Linus Torvalds
2019-10-07 18:36                   ` Tony Luck
2019-10-07 19:08                     ` Linus Torvalds
2019-10-07 19:49                       ` Tony Luck
2019-10-07 20:04                         ` Linus Torvalds
2019-10-08  3:29                   ` Al Viro
2019-10-08  4:09                     ` Linus Torvalds
2019-10-08  4:14                       ` Linus Torvalds
2019-10-08  5:02                         ` Al Viro
2019-10-08  4:24                       ` Linus Torvalds
2019-10-10 19:55                         ` Al Viro
2019-10-10 22:12                           ` Linus Torvalds
2019-10-11  0:11                             ` Al Viro
2019-10-11  0:31                               ` Linus Torvalds
2019-10-13 18:13                                 ` Al Viro
2019-10-13 18:43                                   ` Linus Torvalds
2019-10-13 19:10                                     ` Al Viro
2019-10-13 19:22                                       ` Linus Torvalds
2019-10-13 19:59                                         ` Al Viro
2019-10-13 20:20                                           ` Linus Torvalds
2019-10-15  3:46                                             ` Michael Ellerman
2019-10-15 18:08                                           ` Al Viro
2019-10-15 19:00                                             ` Linus Torvalds
2019-10-15 19:40                                               ` Al Viro
2019-10-15 20:18                                                 ` Al Viro
2019-10-16 12:12                                             ` [RFC] change of calling conventions for arch_futex_atomic_op_inuser() Al Viro
2019-10-16 12:24                                               ` Thomas Gleixner
2019-10-16 20:25                                         ` [PATCH] Convert filldir[64]() from __put_user() to unsafe_put_user() Al Viro
2019-10-17 19:36                                           ` [RFC][PATCHES] drivers/scsi/sg.c uaccess cleanups/fixes Al Viro
2019-10-17 19:39                                             ` [RFC PATCH 1/8] sg_ioctl(): fix copyout handling Al Viro
2019-10-17 19:39                                               ` [RFC PATCH 2/8] sg_new_write(): replace access_ok() + __copy_from_user() with copy_from_user() Al Viro
2019-10-17 19:39                                               ` [RFC PATCH 3/8] sg_write(): __get_user() can fail Al Viro
2019-10-17 19:39                                               ` [RFC PATCH 4/8] sg_read(): simplify reading ->pack_id of userland sg_io_hdr_t Al Viro
2019-10-17 19:39                                               ` [RFC PATCH 5/8] sg_new_write(): don't bother with access_ok Al Viro
2019-10-17 19:39                                               ` [RFC PATCH 6/8] sg_read(): get rid of access_ok()/__copy_..._user() Al Viro
2019-10-17 19:39                                               ` [RFC PATCH 7/8] sg_write(): get rid of access_ok()/__copy_from_user()/__get_user() Al Viro
2019-10-17 19:39                                               ` [RFC PATCH 8/8] SG_IO: get rid of access_ok() Al Viro
2019-10-17 21:44                                             ` [RFC][PATCHES] drivers/scsi/sg.c uaccess cleanups/fixes Douglas Gilbert
2019-11-05  4:54                                             ` Martin K. Petersen
2019-11-05  5:25                                               ` Al Viro
2019-11-06  4:29                                                 ` Martin K. Petersen
2019-10-18  0:27                                           ` [RFC] csum_and_copy_from_user() semantics Al Viro
2019-10-25 14:01                                       ` [PATCH] Convert filldir[64]() from __put_user() to unsafe_put_user() Thomas Gleixner
2019-10-08  4:57                       ` Al Viro
2019-10-08 13:14                         ` Greg KH
2019-10-08 15:29                           ` Al Viro
2019-10-08 15:38                             ` Greg KH
2019-10-08 17:06                               ` Al Viro
2019-10-08 19:58                   ` Al Viro
2019-10-08 20:16                     ` Al Viro
2019-10-08 20:34                     ` Al Viro
2019-10-07  2:30         ` Guenter Roeck
2019-10-07  3:12           ` Linus Torvalds
2019-10-07  0:23   ` Guenter Roeck [this message]
2019-10-07  4:04 ` Max Filippov
2019-10-07 12:16   ` Guenter Roeck
2019-10-07 19:21 ` Linus Torvalds
2019-10-07 20:29   ` Guenter Roeck
2019-10-07 23:27   ` Guenter Roeck
2019-10-08  6:28     ` Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191007002316.GA30301@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.