1
0
Files
2016-11-30 09:03:17 +08:00

128 lines
2.5 KiB
ArmAsm

.file 1 "xmcs_epon.c"
.section .mdebug.abi32
.previous
.nan legacy
.gnu_attribute 4, 3
#APP
.macro _ssnop; sll $0, $0, 1; .endm
.macro _ehb; sll $0, $0, 3; .endm
.macro mtc0_tlbw_hazard; _ehb; .endm
.macro tlbw_use_hazard; _ehb; .endm
.macro tlb_probe_hazard; _ehb; .endm
.macro irq_enable_hazard; _ehb; .endm
.macro irq_disable_hazard; _ehb; .endm
.macro back_to_back_c0_hazard; _ehb; .endm
.macro enable_fpu_hazard; _ehb; .endm
.macro disable_fpu_hazard; _ehb; .endm
.macro raw_local_irq_enable
.set push
.set reorder
.set noat
mfc0 $1, $2, 1 # SMTC - clear TCStatus.IXMT
ori $1, 0x400
xori $1, 0x400
mtc0 $1, $2, 1
irq_enable_hazard
.set pop
.endm
.macro raw_local_irq_disable
.set push
.set noat
mfc0 $1, $2, 1
ori $1, 0x400
.set noreorder
mtc0 $1, $2, 1
irq_disable_hazard
.set pop
.endm
.macro raw_local_save_flags flags
.set push
.set reorder
mfc0 \flags, $2, 1
.set pop
.endm
.macro raw_local_irq_save result
.set push
.set reorder
.set noat
mfc0 \result, $2, 1
ori $1, \result, 0x400
.set noreorder
mtc0 $1, $2, 1
andi \result, \result, 0x400
irq_disable_hazard
.set pop
.endm
.macro raw_local_irq_restore flags
.set push
.set noreorder
.set noat
mfc0 $1, $2, 1
andi \flags, 0x400
ori $1, 0x400
xori $1, 0x400
or \flags, $1
mtc0 \flags, $2, 1
irq_disable_hazard
.set pop
.endm
.rdata
.align 2
$LC0:
.ascii "[%lu0ms]No such I/O command, cmd: %d\012\000"
#NO_APP
.section .text.epon_cmd_proc,"ax",@progbits
.align 2
.globl epon_cmd_proc
.set nomips16
.set nomicromips
.ent epon_cmd_proc
.type epon_cmd_proc, @function
epon_cmd_proc:
.frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0
.mask 0x80000000,-4
.fmask 0x00000000,0
.set noreorder
.set nomacro
addiu $sp,$sp,-24
sw $31,20($sp)
sw $4,24($sp)
sw $5,28($sp)
lui $2,%hi(gpPonSysData)
lw $3,%lo(gpPonSysData)($2)
li $2,65536 # 0x10000
addu $2,$3,$2
lhu $2,-30816($2)
andi $2,$2,0x1
beq $2,$0,$L2
nop
lui $2,%hi(jiffies)
lw $3,%lo(jiffies)($2)
lui $2,%hi($LC0)
addiu $4,$2,%lo($LC0)
move $5,$3
lw $6,24($sp)
lui $2,%hi(printk)
addiu $2,$2,%lo(printk)
jalr $2
nop
$L2:
nop
move $2,$0
lw $31,20($sp)
addiu $sp,$sp,24
j $31
nop
.set macro
.set reorder
.end epon_cmd_proc
.size epon_cmd_proc, .-epon_cmd_proc
.ident "GCC: (Buildroot 2015.08.1) 4.9.3"