847 lines
14 KiB
ArmAsm
847 lines
14 KiB
ArmAsm
|
.file "terminal.c"
|
||
|
.text
|
||
|
.section .rodata.str1.1,"aMS",@progbits,1
|
||
|
.LC0:
|
||
|
.string "kaleid/kernel/io/terminal.c"
|
||
|
.LC1:
|
||
|
.string "kt->kt_init == INITOK"
|
||
|
.section .rodata.str1.8,"aMS",@progbits,1
|
||
|
.align 8
|
||
|
.LC2:
|
||
|
.string "(&(kt)->kt_lock)->lk_init == INITOK"
|
||
|
.align 8
|
||
|
.LC3:
|
||
|
.string "DosAquireLock on an already locked object"
|
||
|
.align 8
|
||
|
.LC4:
|
||
|
.string "DosReleaseLock on an unlocked object"
|
||
|
.text
|
||
|
.p2align 4,,15
|
||
|
.globl ClearTerm
|
||
|
.type ClearTerm, @function
|
||
|
ClearTerm:
|
||
|
.LFB3:
|
||
|
.cfi_startproc
|
||
|
testq %rdi, %rdi
|
||
|
je .L10
|
||
|
pushq %rbx
|
||
|
.cfi_def_cfa_offset 16
|
||
|
.cfi_offset 3, -16
|
||
|
cmpl $-889275714, 80(%rdi)
|
||
|
movq %rdi, %rbx
|
||
|
jne .L26
|
||
|
/APP
|
||
|
# 69 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rdi)
|
||
|
jne .L27
|
||
|
movl 4(%rdi), %eax
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rdi)
|
||
|
jne .L28
|
||
|
.L5:
|
||
|
/APP
|
||
|
# 69 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
movq 48(%rbx), %rcx
|
||
|
movzbl 40(%rbx), %edx
|
||
|
imulq 56(%rbx), %rcx
|
||
|
sall $8, %edx
|
||
|
orl $32, %edx
|
||
|
testq %rcx, %rcx
|
||
|
je .L6
|
||
|
movq 32(%rbx), %rax
|
||
|
leaq (%rax,%rcx,2), %rcx
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L7:
|
||
|
movw %dx, (%rax)
|
||
|
addq $2, %rax
|
||
|
cmpq %rax, %rcx
|
||
|
jne .L7
|
||
|
.L6:
|
||
|
movq $0, 72(%rbx)
|
||
|
movq $0, 64(%rbx)
|
||
|
/APP
|
||
|
# 71 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rbx)
|
||
|
jne .L29
|
||
|
movl 4(%rbx), %eax
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rbx)
|
||
|
jne .L30
|
||
|
.L9:
|
||
|
/APP
|
||
|
# 71 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
xorl %eax, %eax
|
||
|
popq %rbx
|
||
|
.cfi_remember_state
|
||
|
.cfi_restore 3
|
||
|
.cfi_def_cfa_offset 8
|
||
|
ret
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L30:
|
||
|
.cfi_restore_state
|
||
|
movabsq $.LC4, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L9
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L28:
|
||
|
movabsq $.LC3, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L5
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L26:
|
||
|
movabsq $__func__.1202, %rcx
|
||
|
movl $67, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC1, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L27:
|
||
|
movabsq $__func__.1202, %rcx
|
||
|
movl $69, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L29:
|
||
|
movabsq $__func__.1202, %rcx
|
||
|
movl $71, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.L10:
|
||
|
.cfi_def_cfa_offset 8
|
||
|
.cfi_restore 3
|
||
|
movq $-6, %rax
|
||
|
ret
|
||
|
.cfi_endproc
|
||
|
.LFE3:
|
||
|
.size ClearTerm, .-ClearTerm
|
||
|
.section .rodata.str1.8
|
||
|
.align 8
|
||
|
.LC5:
|
||
|
.string "!stdout && _vga_term.kt_init != INITOK"
|
||
|
.text
|
||
|
.p2align 4,,15
|
||
|
.globl InitTerms
|
||
|
.type InitTerms, @function
|
||
|
InitTerms:
|
||
|
.LFB2:
|
||
|
.cfi_startproc
|
||
|
movabsq $stdout, %rdx
|
||
|
cmpq $0, (%rdx)
|
||
|
jne .L32
|
||
|
movabsq $_vga_term, %rdi
|
||
|
cmpl $-889275714, 80(%rdi)
|
||
|
je .L32
|
||
|
movabsq $_vga_term+80, %rax
|
||
|
movq %rdi, (%rdx)
|
||
|
movl $-889275714, (%rax)
|
||
|
movq %rdi, %rax
|
||
|
movabsq %rax, stddbg
|
||
|
movabsq $ClearTerm, %rax
|
||
|
jmp *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L32:
|
||
|
subq $8, %rsp
|
||
|
.cfi_def_cfa_offset 16
|
||
|
movabsq $__func__.1198, %rcx
|
||
|
movl $49, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC5, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.cfi_endproc
|
||
|
.LFE2:
|
||
|
.size InitTerms, .-InitTerms
|
||
|
.p2align 4,,15
|
||
|
.globl ChTermColor
|
||
|
.type ChTermColor, @function
|
||
|
ChTermColor:
|
||
|
.LFB4:
|
||
|
.cfi_startproc
|
||
|
cmpb $15, %sil
|
||
|
ja .L42
|
||
|
testq %rdi, %rdi
|
||
|
je .L43
|
||
|
pushq %rbp
|
||
|
.cfi_def_cfa_offset 16
|
||
|
.cfi_offset 6, -16
|
||
|
pushq %rbx
|
||
|
.cfi_def_cfa_offset 24
|
||
|
.cfi_offset 3, -24
|
||
|
movl %esi, %ebp
|
||
|
movq %rdi, %rbx
|
||
|
subq $8, %rsp
|
||
|
.cfi_def_cfa_offset 32
|
||
|
/APP
|
||
|
# 87 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rdi)
|
||
|
jne .L54
|
||
|
movl 4(%rdi), %eax
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rdi)
|
||
|
jne .L55
|
||
|
.L39:
|
||
|
/APP
|
||
|
# 87 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
movb %bpl, 40(%rbx)
|
||
|
/APP
|
||
|
# 89 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rbx)
|
||
|
jne .L56
|
||
|
movl 4(%rbx), %eax
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rbx)
|
||
|
jne .L57
|
||
|
.L41:
|
||
|
/APP
|
||
|
# 89 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
addq $8, %rsp
|
||
|
.cfi_remember_state
|
||
|
.cfi_def_cfa_offset 24
|
||
|
xorl %eax, %eax
|
||
|
popq %rbx
|
||
|
.cfi_restore 3
|
||
|
.cfi_def_cfa_offset 16
|
||
|
popq %rbp
|
||
|
.cfi_restore 6
|
||
|
.cfi_def_cfa_offset 8
|
||
|
ret
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L55:
|
||
|
.cfi_restore_state
|
||
|
movabsq $.LC3, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L39
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L57:
|
||
|
movabsq $.LC4, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L41
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L54:
|
||
|
movabsq $__func__.1210, %rcx
|
||
|
movl $87, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L56:
|
||
|
movabsq $__func__.1210, %rcx
|
||
|
movl $89, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L42:
|
||
|
.cfi_def_cfa_offset 8
|
||
|
.cfi_restore 3
|
||
|
.cfi_restore 6
|
||
|
movq $-5, %rax
|
||
|
ret
|
||
|
.L43:
|
||
|
movq $-6, %rax
|
||
|
ret
|
||
|
.cfi_endproc
|
||
|
.LFE4:
|
||
|
.size ChTermColor, .-ChTermColor
|
||
|
.p2align 4,,15
|
||
|
.globl ClearTermUnlocked
|
||
|
.type ClearTermUnlocked, @function
|
||
|
ClearTermUnlocked:
|
||
|
.LFB7:
|
||
|
.cfi_startproc
|
||
|
movq 48(%rdi), %rcx
|
||
|
movzbl 40(%rdi), %edx
|
||
|
imulq 56(%rdi), %rcx
|
||
|
sall $8, %edx
|
||
|
orl $32, %edx
|
||
|
testq %rcx, %rcx
|
||
|
je .L59
|
||
|
movq 32(%rdi), %rax
|
||
|
leaq (%rax,%rcx,2), %rcx
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L60:
|
||
|
movw %dx, (%rax)
|
||
|
addq $2, %rax
|
||
|
cmpq %rcx, %rax
|
||
|
jne .L60
|
||
|
.L59:
|
||
|
movq $0, 72(%rdi)
|
||
|
movq $0, 64(%rdi)
|
||
|
ret
|
||
|
.cfi_endproc
|
||
|
.LFE7:
|
||
|
.size ClearTermUnlocked, .-ClearTermUnlocked
|
||
|
.p2align 4,,15
|
||
|
.globl PutOnTermUnlocked
|
||
|
.type PutOnTermUnlocked, @function
|
||
|
PutOnTermUnlocked:
|
||
|
.LFB8:
|
||
|
.cfi_startproc
|
||
|
cmpb $13, %sil
|
||
|
je .L69
|
||
|
movsbl %sil, %esi
|
||
|
movabsq $PutOnTermUnlocked.part.0, %rax
|
||
|
jmp *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L69:
|
||
|
movq $0, 64(%rdi)
|
||
|
ret
|
||
|
.cfi_endproc
|
||
|
.LFE8:
|
||
|
.size PutOnTermUnlocked, .-PutOnTermUnlocked
|
||
|
.p2align 4,,15
|
||
|
.type PutOnTermUnlocked.part.0, @function
|
||
|
PutOnTermUnlocked.part.0:
|
||
|
.LFB10:
|
||
|
.cfi_startproc
|
||
|
pushq %r13
|
||
|
.cfi_def_cfa_offset 16
|
||
|
.cfi_offset 13, -16
|
||
|
pushq %r12
|
||
|
.cfi_def_cfa_offset 24
|
||
|
.cfi_offset 12, -24
|
||
|
pushq %rbp
|
||
|
.cfi_def_cfa_offset 32
|
||
|
.cfi_offset 6, -32
|
||
|
pushq %rbx
|
||
|
.cfi_def_cfa_offset 40
|
||
|
.cfi_offset 3, -40
|
||
|
movq %rdi, %rbx
|
||
|
subq $8, %rsp
|
||
|
.cfi_def_cfa_offset 48
|
||
|
cmpb $10, %sil
|
||
|
je .L81
|
||
|
cmpb $9, %sil
|
||
|
movq 72(%rdi), %rbp
|
||
|
je .L82
|
||
|
movq 48(%rdi), %rdx
|
||
|
movzbl 40(%rbx), %ecx
|
||
|
movsbw %sil, %si
|
||
|
movq 64(%rdi), %rax
|
||
|
movq 32(%rdi), %rdi
|
||
|
imulq %rdx, %rbp
|
||
|
sall $8, %ecx
|
||
|
orl %ecx, %esi
|
||
|
addq %rax, %rbp
|
||
|
movw %si, (%rdi,%rbp,2)
|
||
|
.L72:
|
||
|
addq $1, %rax
|
||
|
cmpq %rdx, %rax
|
||
|
je .L77
|
||
|
movq %rax, 64(%rbx)
|
||
|
.L70:
|
||
|
addq $8, %rsp
|
||
|
.cfi_remember_state
|
||
|
.cfi_def_cfa_offset 40
|
||
|
popq %rbx
|
||
|
.cfi_restore 3
|
||
|
.cfi_def_cfa_offset 32
|
||
|
popq %rbp
|
||
|
.cfi_restore 6
|
||
|
.cfi_def_cfa_offset 24
|
||
|
popq %r12
|
||
|
.cfi_restore 12
|
||
|
.cfi_def_cfa_offset 16
|
||
|
popq %r13
|
||
|
.cfi_restore 13
|
||
|
.cfi_def_cfa_offset 8
|
||
|
ret
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L82:
|
||
|
.cfi_restore_state
|
||
|
movq %rbp, %rax
|
||
|
movl $4, %r12d
|
||
|
movabsq $PutOnTermUnlocked, %r13
|
||
|
cmpq %rbp, %rax
|
||
|
je .L83
|
||
|
.L74:
|
||
|
subl $1, %r12d
|
||
|
je .L84
|
||
|
movq 72(%rbx), %rax
|
||
|
cmpq %rbp, %rax
|
||
|
jne .L74
|
||
|
.L83:
|
||
|
movl $32, %esi
|
||
|
movq %rbx, %rdi
|
||
|
call *%r13
|
||
|
jmp .L74
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L77:
|
||
|
movq 72(%rbx), %rax
|
||
|
movq $0, 64(%rbx)
|
||
|
addq $1, %rax
|
||
|
cmpq 56(%rbx), %rax
|
||
|
movq %rax, 72(%rbx)
|
||
|
jne .L70
|
||
|
movq $0, 72(%rbx)
|
||
|
addq $8, %rsp
|
||
|
.cfi_remember_state
|
||
|
.cfi_def_cfa_offset 40
|
||
|
popq %rbx
|
||
|
.cfi_restore 3
|
||
|
.cfi_def_cfa_offset 32
|
||
|
popq %rbp
|
||
|
.cfi_restore 6
|
||
|
.cfi_def_cfa_offset 24
|
||
|
popq %r12
|
||
|
.cfi_restore 12
|
||
|
.cfi_def_cfa_offset 16
|
||
|
popq %r13
|
||
|
.cfi_restore 13
|
||
|
.cfi_def_cfa_offset 8
|
||
|
ret
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L81:
|
||
|
.cfi_restore_state
|
||
|
movq 48(%rdi), %rdx
|
||
|
leaq -1(%rdx), %rax
|
||
|
movq %rax, 72(%rdi)
|
||
|
movq 64(%rdi), %rax
|
||
|
jmp .L72
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L84:
|
||
|
movq 64(%rbx), %rax
|
||
|
movq 48(%rbx), %rdx
|
||
|
jmp .L72
|
||
|
.cfi_endproc
|
||
|
.LFE10:
|
||
|
.size PutOnTermUnlocked.part.0, .-PutOnTermUnlocked.part.0
|
||
|
.p2align 4,,15
|
||
|
.globl PutOnTerm
|
||
|
.type PutOnTerm, @function
|
||
|
PutOnTerm:
|
||
|
.LFB5:
|
||
|
.cfi_startproc
|
||
|
testq %rdi, %rdi
|
||
|
je .L94
|
||
|
pushq %rbp
|
||
|
.cfi_def_cfa_offset 16
|
||
|
.cfi_offset 6, -16
|
||
|
pushq %rbx
|
||
|
.cfi_def_cfa_offset 24
|
||
|
.cfi_offset 3, -24
|
||
|
movl %esi, %ebp
|
||
|
movq %rdi, %rbx
|
||
|
subq $8, %rsp
|
||
|
.cfi_def_cfa_offset 32
|
||
|
cmpl $-889275714, 80(%rdi)
|
||
|
jne .L105
|
||
|
/APP
|
||
|
# 104 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rdi)
|
||
|
jne .L106
|
||
|
movl 4(%rdi), %eax
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rdi)
|
||
|
jne .L107
|
||
|
.L89:
|
||
|
/APP
|
||
|
# 104 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpb $13, %bpl
|
||
|
jne .L90
|
||
|
movq $0, 64(%rbx)
|
||
|
.L91:
|
||
|
/APP
|
||
|
# 106 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rbx)
|
||
|
jne .L108
|
||
|
movl 4(%rbx), %eax
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rbx)
|
||
|
jne .L109
|
||
|
.L93:
|
||
|
/APP
|
||
|
# 106 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
addq $8, %rsp
|
||
|
.cfi_remember_state
|
||
|
.cfi_def_cfa_offset 24
|
||
|
xorl %eax, %eax
|
||
|
popq %rbx
|
||
|
.cfi_restore 3
|
||
|
.cfi_def_cfa_offset 16
|
||
|
popq %rbp
|
||
|
.cfi_restore 6
|
||
|
.cfi_def_cfa_offset 8
|
||
|
ret
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L90:
|
||
|
.cfi_restore_state
|
||
|
movsbl %bpl, %esi
|
||
|
movq %rbx, %rdi
|
||
|
movabsq $PutOnTermUnlocked.part.0, %rax
|
||
|
call *%rax
|
||
|
jmp .L91
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L107:
|
||
|
movabsq $.LC3, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L89
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L109:
|
||
|
movabsq $.LC4, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L93
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L105:
|
||
|
movabsq $__func__.1217, %rcx
|
||
|
movl $102, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC1, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L106:
|
||
|
movabsq $__func__.1217, %rcx
|
||
|
movl $104, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L108:
|
||
|
movabsq $__func__.1217, %rcx
|
||
|
movl $106, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.L94:
|
||
|
.cfi_def_cfa_offset 8
|
||
|
.cfi_restore 3
|
||
|
.cfi_restore 6
|
||
|
movq $-6, %rax
|
||
|
ret
|
||
|
.cfi_endproc
|
||
|
.LFE5:
|
||
|
.size PutOnTerm, .-PutOnTerm
|
||
|
.p2align 4,,15
|
||
|
.globl PrintOnTerm
|
||
|
.type PrintOnTerm, @function
|
||
|
PrintOnTerm:
|
||
|
.LFB6:
|
||
|
.cfi_startproc
|
||
|
testq %rdi, %rdi
|
||
|
je .L121
|
||
|
pushq %r12
|
||
|
.cfi_def_cfa_offset 16
|
||
|
.cfi_offset 12, -16
|
||
|
pushq %rbp
|
||
|
.cfi_def_cfa_offset 24
|
||
|
.cfi_offset 6, -24
|
||
|
movq %rdi, %rbp
|
||
|
pushq %rbx
|
||
|
.cfi_def_cfa_offset 32
|
||
|
.cfi_offset 3, -32
|
||
|
cmpl $-889275714, 80(%rdi)
|
||
|
jne .L132
|
||
|
/APP
|
||
|
# 121 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rdi)
|
||
|
jne .L133
|
||
|
movl 4(%rdi), %eax
|
||
|
movq %rsi, %rbx
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rdi)
|
||
|
jne .L134
|
||
|
.L114:
|
||
|
/APP
|
||
|
# 121 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
movabsq $PutOnTermUnlocked.part.0, %r12
|
||
|
.L115:
|
||
|
movsbl (%rbx), %esi
|
||
|
testb %sil, %sil
|
||
|
je .L135
|
||
|
.L118:
|
||
|
addq $1, %rbx
|
||
|
cmpb $13, %sil
|
||
|
jne .L116
|
||
|
movq $0, 64(%rbp)
|
||
|
movsbl (%rbx), %esi
|
||
|
testb %sil, %sil
|
||
|
jne .L118
|
||
|
.L135:
|
||
|
/APP
|
||
|
# 125 "kaleid/kernel/io/terminal.c" 1
|
||
|
cli
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
cmpl $-889275714, 24(%rbp)
|
||
|
jne .L136
|
||
|
movl 4(%rbp), %eax
|
||
|
leal 1(%rax), %edx
|
||
|
testl %eax, %eax
|
||
|
movl %edx, 4(%rbp)
|
||
|
jne .L137
|
||
|
.L120:
|
||
|
/APP
|
||
|
# 125 "kaleid/kernel/io/terminal.c" 1
|
||
|
sti
|
||
|
# 0 "" 2
|
||
|
/NO_APP
|
||
|
xorl %eax, %eax
|
||
|
popq %rbx
|
||
|
.cfi_remember_state
|
||
|
.cfi_restore 3
|
||
|
.cfi_def_cfa_offset 24
|
||
|
popq %rbp
|
||
|
.cfi_restore 6
|
||
|
.cfi_def_cfa_offset 16
|
||
|
popq %r12
|
||
|
.cfi_restore 12
|
||
|
.cfi_def_cfa_offset 8
|
||
|
ret
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L116:
|
||
|
.cfi_restore_state
|
||
|
movq %rbp, %rdi
|
||
|
call *%r12
|
||
|
jmp .L115
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L137:
|
||
|
movabsq $.LC4, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L120
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L134:
|
||
|
movabsq $.LC3, %rdi
|
||
|
xorl %eax, %eax
|
||
|
movabsq $StartPanic, %rdx
|
||
|
call *%rdx
|
||
|
jmp .L114
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L132:
|
||
|
movabsq $__func__.1224, %rcx
|
||
|
movl $119, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC1, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L133:
|
||
|
movabsq $__func__.1224, %rcx
|
||
|
movl $121, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L136:
|
||
|
movabsq $__func__.1224, %rcx
|
||
|
movl $125, %edx
|
||
|
movabsq $.LC0, %rsi
|
||
|
movabsq $.LC2, %rdi
|
||
|
movabsq $_assert_handler, %rax
|
||
|
call *%rax
|
||
|
.L121:
|
||
|
.cfi_def_cfa_offset 8
|
||
|
.cfi_restore 3
|
||
|
.cfi_restore 6
|
||
|
.cfi_restore 12
|
||
|
movq $-6, %rax
|
||
|
ret
|
||
|
.cfi_endproc
|
||
|
.LFE6:
|
||
|
.size PrintOnTerm, .-PrintOnTerm
|
||
|
.p2align 4,,15
|
||
|
.globl PrintOnTermUnlocked
|
||
|
.type PrintOnTermUnlocked, @function
|
||
|
PrintOnTermUnlocked:
|
||
|
.LFB9:
|
||
|
.cfi_startproc
|
||
|
pushq %r12
|
||
|
.cfi_def_cfa_offset 16
|
||
|
.cfi_offset 12, -16
|
||
|
movabsq $PutOnTermUnlocked.part.0, %r12
|
||
|
pushq %rbp
|
||
|
.cfi_def_cfa_offset 24
|
||
|
.cfi_offset 6, -24
|
||
|
movq %rdi, %rbp
|
||
|
pushq %rbx
|
||
|
.cfi_def_cfa_offset 32
|
||
|
.cfi_offset 3, -32
|
||
|
movq %rsi, %rbx
|
||
|
.L139:
|
||
|
movsbl (%rbx), %esi
|
||
|
testb %sil, %sil
|
||
|
je .L144
|
||
|
.L142:
|
||
|
addq $1, %rbx
|
||
|
cmpb $13, %sil
|
||
|
jne .L140
|
||
|
movq $0, 64(%rbp)
|
||
|
movsbl (%rbx), %esi
|
||
|
testb %sil, %sil
|
||
|
jne .L142
|
||
|
.L144:
|
||
|
popq %rbx
|
||
|
.cfi_remember_state
|
||
|
.cfi_restore 3
|
||
|
.cfi_def_cfa_offset 24
|
||
|
popq %rbp
|
||
|
.cfi_restore 6
|
||
|
.cfi_def_cfa_offset 16
|
||
|
popq %r12
|
||
|
.cfi_restore 12
|
||
|
.cfi_def_cfa_offset 8
|
||
|
ret
|
||
|
.p2align 4,,10
|
||
|
.p2align 3
|
||
|
.L140:
|
||
|
.cfi_restore_state
|
||
|
movq %rbp, %rdi
|
||
|
call *%r12
|
||
|
jmp .L139
|
||
|
.cfi_endproc
|
||
|
.LFE9:
|
||
|
.size PrintOnTermUnlocked, .-PrintOnTermUnlocked
|
||
|
.section .rodata
|
||
|
.align 8
|
||
|
.type __func__.1224, @object
|
||
|
.size __func__.1224, 12
|
||
|
__func__.1224:
|
||
|
.string "PrintOnTerm"
|
||
|
.align 8
|
||
|
.type __func__.1217, @object
|
||
|
.size __func__.1217, 10
|
||
|
__func__.1217:
|
||
|
.string "PutOnTerm"
|
||
|
.align 8
|
||
|
.type __func__.1210, @object
|
||
|
.size __func__.1210, 12
|
||
|
__func__.1210:
|
||
|
.string "ChTermColor"
|
||
|
.align 8
|
||
|
.type __func__.1202, @object
|
||
|
.size __func__.1202, 10
|
||
|
__func__.1202:
|
||
|
.string "ClearTerm"
|
||
|
.align 8
|
||
|
.type __func__.1198, @object
|
||
|
.size __func__.1198, 10
|
||
|
__func__.1198:
|
||
|
.string "InitTerms"
|
||
|
.comm stddbg,8,8
|
||
|
.comm stdout,8,8
|
||
|
.data
|
||
|
.align 32
|
||
|
.type _vga_term, @object
|
||
|
.size _vga_term, 88
|
||
|
_vga_term:
|
||
|
.byte 0
|
||
|
.zero 3
|
||
|
.long 0
|
||
|
.quad 0
|
||
|
.quad 0
|
||
|
.long -889275714
|
||
|
.zero 4
|
||
|
.quad 753664
|
||
|
.byte 7
|
||
|
.zero 7
|
||
|
.quad 80
|
||
|
.quad 25
|
||
|
.quad 0
|
||
|
.quad 0
|
||
|
.long 0
|
||
|
.zero 4
|
||
|
.ident "GCC: (GNU) 7.3.0"
|