Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#source: tlspic1.s
#source: tlspic2.s
#as: -m64 -Aesame
#ld: -shared -melf64_s390
#objdump: -dzrj.text
#target: s390x-*-*

.*: +file format elf64-s390

Disassembly of section .text:

0+[0-9a-f]+ <fn1>:
# function prolog
 +[0-9a-f]+:	eb 6e f0 30 00 24 	stmg	%r6,%r14,48\(%r15\)
 +[0-9a-f]+:	a7 d5 00 56       	bras	%r13,[0-9a-f]+ <fn1\+0xb2>
# sg1@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 70       	.long	0x00000070
# sg2@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 90       	.long	0x00000090
# sl1@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
# sl2@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 30       	.long	0x00000030
# sh1@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 98       	.long	0x00000098
# sh2@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 a8       	.long	0x000000a8
# sH1@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 50       	.long	0x00000050
# sH2@tlsgd
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
# sl1@tlsldm
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
# sl1@dtpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
# sl2@dtpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 24       	.long	0x00000024
# sh1@tlsldm
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
# sh1@dtpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
# sh2@dtpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 44       	.long	0x00000044
# sH1@tlsldm
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
# sH1@dtpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
# sH2@dtpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 64       	.long	0x00000064
# sg2@gotntpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 90       	.long	0x00000090
# sl2@gotntpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 30       	.long	0x00000030
# sh2@gotntpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 a8       	.long	0x000000a8
# sH2@gotntpoff
 +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
# function prolog
 +[0-9a-f]+:	b9 04 00 ef       	lgr	%r14,%r15
 +[0-9a-f]+:	c0 c0 [0-9a-f ]+ 	larl	%r12,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_>
 +[0-9a-f]+:	a7 fb ff 60       	aghi	%r15,-160
 +[0-9a-f]+:	e3 e0 e0 00 00 24 	stg	%r14,0\(%r14\)
# extract TCB
 +[0-9a-f]+:	b2 4f 00 90       	ear	%r9,%a0
 +[0-9a-f]+:	eb 94 00 20 00 0d 	sllg	%r9,%r4,32
 +[0-9a-f]+:	b2 4f 00 91       	ear	%r9,%a1
# GD
 +[0-9a-f]+:	e3 20 d0 00 00 04 	lg	%r2,0\(%r13\)
 +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# GD -> IE because variable is referenced through IE too
 +[0-9a-f]+:	e3 20 d0 08 00 04 	lg	%r2,8\(%r13\)
 +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# GD against local variable
 +[0-9a-f]+:	e3 20 d0 10 00 04 	lg	%r2,16\(%r13\)
 +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# GD -> IE against local variable referenced through IE too
 +[0-9a-f]+:	e3 20 d0 18 00 04 	lg	%r2,24\(%r13\)
 +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# GD against hidden and local variable
 +[0-9a-f]+:	e3 20 d0 20 00 04 	lg	%r2,32\(%r13\)
 +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# GD -> IE against hidden and local variable referenced through
# IE too
 +[0-9a-f]+:	e3 20 d0 28 00 04 	lg	%r2,40\(%r13\)
 +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# GD against hidden but not local variable
 +[0-9a-f]+:	e3 20 d0 30 00 04 	lg	%r2,48\(%r13\)
 +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# GD -> IE against hidden but not local variable referenced through
# IE too
 +[0-9a-f]+:	e3 20 d0 38 00 04 	lg	%r2,56\(%r13\)
 +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
 +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
# LD
 +[0-9a-f]+:	e3 20 d0 40 00 04 	lg	%r2,64\(%r13\)
 +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
 +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
 +[0-9a-f]+:	e3 40 d0 48 00 04 	lg	%r4,72\(%r13\)
 +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 +[0-9a-f]+:	e3 40 d0 50 00 04 	lg	%r4,80\(%r13\)
 +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
# LD against hidden and local variables
 +[0-9a-f]+:	e3 20 d0 58 00 04 	lg	%r2,88\(%r13\)
 +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
 +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
 +[0-9a-f]+:	e3 40 d0 60 00 04 	lg	%r4,96\(%r13\)
 +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 +[0-9a-f]+:	e3 40 d0 68 00 04 	lg	%r4,104\(%r13\)
 +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
# LD against hidden but not local variables
 +[0-9a-f]+:	e3 20 d0 70 00 04 	lg	%r2,112\(%r13\)
 +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
 +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
 +[0-9a-f]+:	e3 40 d0 78 00 04 	lg	%r4,120\(%r13\)
 +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 +[0-9a-f]+:	e3 40 d0 80 00 04 	lg	%r4,128\(%r13\)
 +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
# IE against global var
 +[0-9a-f]+:	e3 30 d0 88 00 04 	lg	%r3,136\(%r13\)
 +[0-9a-f]+:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
 +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
# IE against local var
 +[0-9a-f]+:	e3 30 d0 90 00 04 	lg	%r3,144\(%r13\)
 +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
 +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
# IE against hidden and local var
 +[0-9a-f]+:	e3 30 d0 98 00 04 	lg	%r3,152\(%r13\)
 +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
 +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
# IE against hidden but not local var
 +[0-9a-f]+:	e3 30 d0 a0 00 04 	lg	%r3,160\(%r13\)
 +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
 +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
# IE against global var with larl got access
 +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <.*>
 +[0-9a-f]+:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
 +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
# IE against local var with larl got access
 +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x38>
 +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
 +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
# IE against hidden and local var with larl got access
 +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x80>
 +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
 +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
# IE against hidden but not local var with larl got access
 +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x88>
 +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
 +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
# IE against global var with small got access (no optimization)
 +[0-9a-f]+:	e3 30 c0 68 00 04 	lg	%r3,104\(%r12\)
 +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
# IE against local var with small got access (no optimization)
 +[0-9a-f]+:	e3 30 c0 38 00 04 	lg	%r3,56\(%r12\)
 +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
# IE against hidden and local var with small got access
# (no optimization)
 +[0-9a-f]+:	e3 30 c0 80 00 04 	lg	%r3,128\(%r12\)
 +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
# IE against hidden but not local var with small got access
# (no optimization)
 +[0-9a-f]+:	e3 30 c0 88 00 04 	lg	%r3,136\(%r12\)
 +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
# function epilog
 +[0-9a-f]+:	eb 6e f0 d0 00 04 	lmg	%r6,%r14,208\(%r15\)
 +[0-9a-f]+:	07 fe             	br	%r14
 +[0-9a-f]+:	07 07             	nopr	%r7
 +[0-9a-f]+:	07 07             	nopr	%r7
 +[0-9a-f]+:	07 07             	nopr	%r7
 +[0-9a-f]+:	07 07             	nopr	%r7
 +[0-9a-f]+:	07 07             	nopr	%r7
 +[0-9a-f]+:	07 07             	nopr	%r7
 +[0-9a-f]+:	07 07             	nopr	%r7
 +[0-9a-f]+:	07 07             	nopr	%r7