summaryrefslogtreecommitdiffstats
path: root/target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S
diff options
context:
space:
mode:
authorRoman Yeryomin <roman@advem.lv>2013-05-17 20:40:24 +0300
committerRoman Yeryomin <roman@advem.lv>2013-05-17 20:40:24 +0300
commite6d87036412b952cb083eff2dc716aee97a771f2 (patch)
tree273dd3daaa85553832d3cc6d48276229dc7fbe09 /target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S
parenta18fec42221baa52fff4c5ffd45ec8f32e3add36 (diff)
Move to rsdk 3.2.4. Compiles cleanly.
Signed-off-by: Roman Yeryomin <roman@advem.lv>
Diffstat (limited to 'target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S')
-rw-r--r--target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S1693
1 files changed, 1693 insertions, 0 deletions
diff --git a/target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S b/target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S
new file mode 100644
index 000000000..0f3235ed0
--- /dev/null
+++ b/target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S
@@ -0,0 +1,1693 @@
+ .file 1 "fast_pppoe_core.c"
+ .section .mdebug.abi32
+ .previous
+#APP
+ .macro _ssnop; sll $0, $0, 1; .endm
+ .macro _ehb; sll $0, $0, 3; .endm
+ .macro mtc0_tlbw_hazard; nop; nop; .endm
+ .macro tlbw_use_hazard; nop; nop; nop; .endm
+ .macro tlb_probe_hazard; nop; nop; nop; .endm
+ .macro irq_enable_hazard; _ssnop; _ssnop; _ssnop;; .endm
+ .macro irq_disable_hazard; nop; nop; nop; .endm
+ .macro back_to_back_c0_hazard; _ssnop; _ssnop; _ssnop;; .endm
+ .macro raw_local_irq_enable
+ .set push
+ .set reorder
+ .set noat
+ mfc0 $1,$12
+ ori $1,0x1f
+ xori $1,0x1e
+ mtc0 $1,$12
+ irq_enable_hazard
+ .set pop
+ .endm
+ .macro raw_local_irq_disable
+ .set push
+ .set noat
+ mfc0 $1,$12
+ ori $1,0x1f
+ xori $1,0x1f
+ .set noreorder
+ mtc0 $1,$12
+ irq_disable_hazard
+ .set pop
+ .endm
+
+ .macro raw_local_save_flags flags
+ .set push
+ .set reorder
+ mfc0 \flags, $12
+ .set pop
+ .endm
+
+ .macro raw_local_irq_save result
+ .set push
+ .set reorder
+ .set noat
+ mfc0 \result, $12
+ ori $1, \result, 0x1f
+ xori $1, 0x1f
+ .set noreorder
+ mtc0 $1, $12
+ irq_disable_hazard
+ .set pop
+ .endm
+
+ .macro raw_local_irq_restore flags
+ .set push
+ .set noreorder
+ .set noat
+ mfc0 $1, $12
+ andi \flags, 1
+ ori $1, 0x1f
+ xori $1, 0x1f
+ or \flags, $1
+ mtc0 \flags, $12
+ irq_disable_hazard
+ .set pop
+ .endm
+
+#NO_APP
+ .globl fast_pppoe_proc
+ .data
+ .align 2
+ .type fast_pppoe_proc, @object
+ .size fast_pppoe_proc, 4
+fast_pppoe_proc:
+ .word 0
+ .globl fast_pppoe_fw
+ .align 2
+ .type fast_pppoe_fw, @object
+ .size fast_pppoe_fw, 4
+fast_pppoe_fw:
+ .word 0
+ .rdata
+ .align 2
+$LC0:
+ .ascii "fast pppoe enable:%c\n\000"
+ .align 2
+$LC1:
+ .ascii "[%d] null,null,0\n\000"
+ .align 2
+$LC2:
+ .ascii "[%d] %s,%s,%d,0x%x:%x:%x:%x:%x:%x\n\000"
+ .section .text.fast_pppoe_read_proc,"ax",@progbits
+ .align 2
+ .ent fast_pppoe_read_proc
+ .type fast_pppoe_read_proc, @function
+fast_pppoe_read_proc:
+ .set nomips16
+ .frame $sp,80,$31 # vars= 0, regs= 8/0, args= 48, gp= 0
+ .mask 0x807f0000,-4
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+
+ addiu $sp,$sp,-80
+ sw $22,72($sp)
+ sw $21,68($sp)
+ sw $20,64($sp)
+ sw $19,60($sp)
+ sw $18,56($sp)
+ sw $17,52($sp)
+ sw $16,48($sp)
+ sw $31,76($sp)
+ lui $2,%hi(fast_pppoe_fw)
+ lw $2,%lo(fast_pppoe_fw)($2)
+ move $22,$5
+ lui $5,%hi($LC0)
+ move $20,$6
+ addiu $5,$5,%lo($LC0)
+ addiu $6,$2,48
+ move $19,$7
+ jal sprintf
+ move $21,$4
+
+ move $16,$2
+ move $17,$0
+ move $18,$0
+$L7:
+ lui $2,%hi(fast_pppoe_info)
+ addiu $2,$2,%lo(fast_pppoe_info)
+ addu $13,$18,$2
+ lhu $2,54($13)
+ lui $7,%hi(fast_pppoe_info+16)
+ lui $5,%hi($LC1)
+ addiu $7,$7,%lo(fast_pppoe_info+16)
+ addu $14,$21,$16
+ addiu $5,$5,%lo($LC1)
+ addu $7,$18,$7
+ move $6,$17
+ bne $2,$0,$L5
+ move $4,$14
+
+ jal sprintf
+ addiu $17,$17,1
+
+ j $L15
+ addu $16,$16,$2
+
+$L5:
+ lbu $12,43($13)
+ lhu $2,52($13)
+ lbu $3,38($13)
+ lbu $8,39($13)
+ lbu $9,40($13)
+ lbu $10,41($13)
+ lbu $11,42($13)
+ lui $5,%hi($LC2)
+ addiu $5,$5,%lo($LC2)
+ move $6,$17
+ sw $13,16($sp)
+ sw $2,20($sp)
+ sw $3,24($sp)
+ sw $8,28($sp)
+ sw $9,32($sp)
+ sw $10,36($sp)
+ sw $11,40($sp)
+ jal sprintf
+ sw $12,44($sp)
+
+ addiu $17,$17,1
+ addu $16,$16,$2
+$L15:
+ slt $2,$17,16
+ bne $2,$0,$L7
+ addiu $18,$18,88
+
+ addu $2,$20,$19
+ slt $2,$2,$16
+ bne $2,$0,$L8
+ li $3,1 # 0x1
+
+ lw $2,96($sp)
+ nop
+ sw $3,0($2)
+$L8:
+ subu $16,$16,$20
+ slt $2,$19,$16
+ movn $16,$19,$2 #RLX4181/RLX4281:conditional move
+ addu $2,$21,$20
+ slt $3,$16,0
+ sw $2,0($22)
+ move $2,$0
+ movz $2,$16,$3 #RLX4181/RLX4281:conditional move
+ lw $31,76($sp)
+ lw $22,72($sp)
+ lw $21,68($sp)
+ lw $20,64($sp)
+ lw $19,60($sp)
+ lw $18,56($sp)
+ lw $17,52($sp)
+ lw $16,48($sp)
+ j $31
+ addiu $sp,$sp,80
+
+ .set macro
+ .set reorder
+ .end fast_pppoe_read_proc
+ .section .text.fast_pppoe_write_proc,"ax",@progbits
+ .align 2
+ .ent fast_pppoe_write_proc
+ .type fast_pppoe_write_proc, @function
+fast_pppoe_write_proc:
+ .set nomips16
+ .frame $sp,16,$31 # vars= 8, regs= 1/0, args= 0, gp= 0
+ .mask 0x80000000,-8
+ .fmask 0x00000000,0
+ addiu $sp,$sp,-16
+ sltu $2,$6,2
+ sw $31,8($sp)
+ move $13,$6
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L16
+ li $4,-14 # 0xfffffffffffffff2
+ .set macro
+ .set reorder
+
+ addiu $2,$5,1
+ .set noreorder
+ .set nomacro
+ beq $5,$0,$L16
+ or $7,$5,$2
+ .set macro
+ .set reorder
+
+ lw $2,24($28)
+ move $4,$sp
+ and $2,$2,$7
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L18
+ li $6,1 # 0x1
+ .set macro
+ .set reorder
+
+#APP
+ .set noreorder
+ jal __copy_user
+ .set noat
+ addu $1, $5, $6
+ .set at
+ .set reorder
+#NO_APP
+ .set noreorder
+ .set nomacro
+ bne $6,$0,$L18
+ move $4,$13
+ .set macro
+ .set reorder
+
+ lb $2,0($sp)
+ lui $3,%hi(fast_pppoe_fw)
+ addiu $2,$2,-48
+ .set noreorder
+ .set nomacro
+ j $L16
+ sw $2,%lo(fast_pppoe_fw)($3)
+ .set macro
+ .set reorder
+
+$L18:
+ li $4,-14 # 0xfffffffffffffff2
+$L16:
+ lw $31,8($sp)
+ move $2,$4
+ .set noreorder
+ .set nomacro
+ j $31
+ addiu $sp,$sp,16
+ .set macro
+ .set reorder
+
+ .end fast_pppoe_write_proc
+ .rdata
+ .align 2
+$LC3:
+ .ascii "fast_pppoe\000"
+ .section .init.text,"ax",@progbits
+ .align 2
+ .globl fast_pppoe_init
+ .ent fast_pppoe_init
+ .type fast_pppoe_init, @function
+fast_pppoe_init:
+ .set nomips16
+ .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0
+ .mask 0x80000000,-8
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+
+ lui $4,%hi($LC3)
+ addiu $sp,$sp,-24
+ addiu $4,$4,%lo($LC3)
+ move $5,$0
+ sw $31,16($sp)
+ jal create_proc_entry
+ move $6,$0
+
+ lui $4,%hi(fast_pppoe_info)
+ lui $7,%hi(fast_pppoe_proc)
+ move $3,$2
+ addiu $4,$4,%lo(fast_pppoe_info)
+ move $5,$0
+ li $6,1408 # 0x580
+ beq $2,$0,$L27
+ sw $2,%lo(fast_pppoe_proc)($7)
+
+ lui $2,%hi(fast_pppoe_read_proc)
+ addiu $2,$2,%lo(fast_pppoe_read_proc)
+ sw $2,64($3)
+ lw $3,%lo(fast_pppoe_proc)($7)
+ lui $2,%hi(fast_pppoe_write_proc)
+ addiu $2,$2,%lo(fast_pppoe_write_proc)
+ sw $2,68($3)
+$L27:
+ jal memset
+ nop
+
+ lw $31,16($sp)
+ lui $2,%hi(fast_pppoe_fw)
+ li $3,1 # 0x1
+ sw $3,%lo(fast_pppoe_fw)($2)
+ addiu $sp,$sp,24
+ j $31
+ move $2,$0
+
+ .set macro
+ .set reorder
+ .end fast_pppoe_init
+ .section .exit.text,"ax",@progbits
+ .align 2
+ .globl fast_pppoe_exit
+ .ent fast_pppoe_exit
+ .type fast_pppoe_exit, @function
+fast_pppoe_exit:
+ .set nomips16
+ .frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0
+ .mask 0x80010000,-4
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+
+ addiu $sp,$sp,-24
+ sw $16,16($sp)
+ lui $16,%hi(fast_pppoe_proc)
+ lw $2,%lo(fast_pppoe_proc)($16)
+ lui $4,%hi($LC3)
+ sw $31,20($sp)
+ addiu $4,$4,%lo($LC3)
+ beq $2,$0,$L29
+ move $5,$2
+
+ jal remove_proc_entry
+ nop
+
+ sw $0,%lo(fast_pppoe_proc)($16)
+$L29:
+ lw $31,20($sp)
+ lw $16,16($sp)
+ move $2,$0
+ j $31
+ addiu $sp,$sp,24
+
+ .set macro
+ .set reorder
+ .end fast_pppoe_exit
+ .section .text.clear_pppoe_info,"ax",@progbits
+ .align 2
+ .globl clear_pppoe_info
+ .ent clear_pppoe_info
+ .type clear_pppoe_info, @function
+clear_pppoe_info:
+ .set nomips16
+ .frame $sp,56,$31 # vars= 0, regs= 9/0, args= 16, gp= 0
+ .mask 0x80ff0000,-8
+ .fmask 0x00000000,0
+ addiu $sp,$sp,-56
+ sw $23,44($sp)
+ sw $22,40($sp)
+ lw $23,76($sp)
+ lw $22,80($sp)
+ sw $21,36($sp)
+ sw $20,32($sp)
+ sw $18,24($sp)
+ sw $17,20($sp)
+ sw $16,16($sp)
+ sw $31,48($sp)
+ sw $19,28($sp)
+ move $17,$4
+ move $16,$5
+ andi $21,$6,0xffff
+ move $18,$0
+ li $20,15 # 0xf
+$L42:
+ lui $19,%hi(fast_pppoe_info)
+ addiu $2,$19,%lo(fast_pppoe_info)
+ addu $5,$18,$2
+ lhu $2,54($5)
+ #nop
+ beq $2,$0,$L33
+ .set noreorder
+ .set nomacro
+ beq $17,$0,$L35
+ lui $2,%hi(fast_pppoe_info+16)
+ .set macro
+ .set reorder
+
+ addiu $2,$2,%lo(fast_pppoe_info+16)
+ addu $2,$18,$2
+ move $4,$17
+#APP
+ .set noreorder
+ .set noat
+ lbu $3,($2)
+1: lbu $1,($4)
+ addiu $2,1
+ bne $1,$3,2f
+ addiu $4,1
+ bnez $3,1b
+ lbu $3,($2)
+ nop
+ move $3,$1
+2: subu $3,$1
+3: .set at
+ .set reorder
+#NO_APP
+ .set noreorder
+ .set nomacro
+ bne $3,$0,$L35
+ move $4,$5
+ .set macro
+ .set reorder
+
+ li $6,88 # 0x58
+ .set noreorder
+ .set nomacro
+ jal memset
+ move $5,$0
+ .set macro
+ .set reorder
+
+$L35:
+ .set noreorder
+ .set nomacro
+ beq $16,$0,$L37
+ addiu $2,$19,%lo(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+ addu $2,$18,$2
+ move $5,$2
+ move $4,$16
+#APP
+ .set noreorder
+ .set noat
+ lbu $3,($2)
+1: lbu $1,($4)
+ addiu $2,1
+ bne $1,$3,2f
+ addiu $4,1
+ bnez $3,1b
+ lbu $3,($2)
+ nop
+ move $3,$1
+2: subu $3,$1
+3: .set at
+ .set reorder
+#NO_APP
+ .set noreorder
+ .set nomacro
+ bne $3,$0,$L37
+ move $4,$5
+ .set macro
+ .set reorder
+
+ li $6,88 # 0x58
+ .set noreorder
+ .set nomacro
+ jal memset
+ move $5,$0
+ .set macro
+ .set reorder
+
+$L37:
+ .set noreorder
+ .set nomacro
+ beq $22,$0,$L39
+ lui $4,%hi(fast_pppoe_info+38)
+ .set macro
+ .set reorder
+
+ addiu $4,$4,%lo(fast_pppoe_info+38)
+ addu $4,$18,$4
+ move $5,$22
+ .set noreorder
+ .set nomacro
+ jal memcmp
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L39
+ lui $4,%hi(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+ addiu $4,$4,%lo(fast_pppoe_info)
+ addu $4,$18,$4
+ move $5,$0
+ .set noreorder
+ .set nomacro
+ jal memset
+ li $6,88 # 0x58
+ .set macro
+ .set reorder
+
+$L39:
+ .set noreorder
+ .set nomacro
+ beq $23,$0,$L40
+ lui $4,%hi(fast_pppoe_info+32)
+ .set macro
+ .set reorder
+
+ addiu $4,$4,%lo(fast_pppoe_info+32)
+ addu $4,$18,$4
+ move $5,$23
+ .set noreorder
+ .set nomacro
+ jal memcmp
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L45
+ lui $2,%hi(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+ lui $4,%hi(fast_pppoe_info)
+ addiu $4,$4,%lo(fast_pppoe_info)
+ addu $4,$18,$4
+ move $5,$0
+ .set noreorder
+ .set nomacro
+ jal memset
+ li $6,88 # 0x58
+ .set macro
+ .set reorder
+
+$L40:
+ lui $2,%hi(fast_pppoe_info)
+$L45:
+ addiu $2,$2,%lo(fast_pppoe_info)
+ addu $4,$18,$2
+ lhu $2,52($4)
+ #nop
+ .set noreorder
+ .set nomacro
+ bne $2,$21,$L33
+ move $5,$0
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal memset
+ li $6,88 # 0x58
+ .set macro
+ .set reorder
+
+$L33:
+ addiu $20,$20,-1
+ .set noreorder
+ .set nomacro
+ bgez $20,$L42
+ addiu $18,$18,88
+ .set macro
+ .set reorder
+
+ lw $31,48($sp)
+ lw $23,44($sp)
+ lw $22,40($sp)
+ lw $21,36($sp)
+ lw $20,32($sp)
+ lw $19,28($sp)
+ lw $18,24($sp)
+ lw $17,20($sp)
+ lw $16,16($sp)
+ move $2,$0
+ .set noreorder
+ .set nomacro
+ j $31
+ addiu $sp,$sp,56
+ .set macro
+ .set reorder
+
+ .end clear_pppoe_info
+ .section .text.find_pppoe_info,"ax",@progbits
+ .align 2
+ .ent find_pppoe_info
+ .type find_pppoe_info, @function
+find_pppoe_info:
+ .set nomips16
+ .frame $sp,56,$31 # vars= 0, regs= 10/0, args= 16, gp= 0
+ .mask 0xc0ff0000,-4
+ .fmask 0x00000000,0
+ addiu $sp,$sp,-56
+ sw $fp,48($sp)
+ sw $23,44($sp)
+ sw $22,40($sp)
+ lw $fp,72($sp)
+ lw $23,76($sp)
+ lw $22,80($sp)
+ sw $21,36($sp)
+ sw $20,32($sp)
+ sw $19,28($sp)
+ sw $18,24($sp)
+ sw $17,20($sp)
+ sw $16,16($sp)
+ sw $31,52($sp)
+ move $17,$4
+ move $16,$5
+ move $21,$7
+ andi $20,$6,0xffff
+ move $19,$0
+ move $18,$0
+$L60:
+ lui $6,%hi(fast_pppoe_info)
+ addiu $2,$6,%lo(fast_pppoe_info)
+ addu $5,$18,$2
+ lhu $2,54($5)
+ #nop
+ beq $2,$0,$L49
+ .set noreorder
+ .set nomacro
+ beq $17,$0,$L51
+ lui $2,%hi(fast_pppoe_info+16)
+ .set macro
+ .set reorder
+
+ addiu $2,$2,%lo(fast_pppoe_info+16)
+ addu $2,$18,$2
+ move $4,$17
+#APP
+ .set noreorder
+ .set noat
+ lbu $3,($2)
+1: lbu $1,($4)
+ addiu $2,1
+ bne $1,$3,2f
+ addiu $4,1
+ bnez $3,1b
+ lbu $3,($2)
+ nop
+ move $3,$1
+2: subu $3,$1
+3: .set at
+ .set reorder
+#NO_APP
+ .set noreorder
+ .set nomacro
+ beq $3,$0,$L46
+ move $2,$5
+ .set macro
+ .set reorder
+
+$L51:
+ .set noreorder
+ .set nomacro
+ beq $16,$0,$L53
+ addiu $2,$6,%lo(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+ addu $2,$18,$2
+ move $5,$2
+ move $4,$16
+#APP
+ .set noreorder
+ .set noat
+ lbu $3,($2)
+1: lbu $1,($4)
+ addiu $2,1
+ bne $1,$3,2f
+ addiu $4,1
+ bnez $3,1b
+ lbu $3,($2)
+ nop
+ move $3,$1
+2: subu $3,$1
+3: .set at
+ .set reorder
+#NO_APP
+ .set noreorder
+ .set nomacro
+ beq $3,$0,$L46
+ move $2,$5
+ .set macro
+ .set reorder
+
+$L53:
+ .set noreorder
+ .set nomacro
+ beq $22,$0,$L55
+ lui $4,%hi(fast_pppoe_info+38)
+ .set macro
+ .set reorder
+
+ addiu $4,$4,%lo(fast_pppoe_info+38)
+ addu $4,$18,$4
+ move $5,$22
+ .set noreorder
+ .set nomacro
+ jal memcmp
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ beq $2,$0,$L66
+ lui $2,%hi(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+$L55:
+ .set noreorder
+ .set nomacro
+ beq $23,$0,$L56
+ lui $4,%hi(fast_pppoe_info+32)
+ .set macro
+ .set reorder
+
+ addiu $4,$4,%lo(fast_pppoe_info+32)
+ addu $4,$18,$4
+ move $5,$23
+ .set noreorder
+ .set nomacro
+ jal memcmp
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L56
+ lui $2,%hi(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+$L66:
+ addiu $2,$2,%lo(fast_pppoe_info)
+ .set noreorder
+ .set nomacro
+ j $L46
+ addu $2,$18,$2
+ .set macro
+ .set reorder
+
+$L56:
+ .set noreorder
+ .set nomacro
+ beq $fp,$0,$L57
+ lui $2,%hi(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+ addiu $2,$2,%lo(fast_pppoe_info)
+ addu $4,$18,$2
+ lw $2,48($4)
+ #nop
+ .set noreorder
+ .set nomacro
+ beq $2,$fp,$L46
+ move $2,$4
+ .set macro
+ .set reorder
+
+$L57:
+ .set noreorder
+ .set nomacro
+ beq $21,$0,$L58
+ lui $2,%hi(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+ addiu $2,$2,%lo(fast_pppoe_info)
+ addu $4,$18,$2
+ lw $2,44($4)
+ #nop
+ .set noreorder
+ .set nomacro
+ beq $2,$21,$L46
+ move $2,$4
+ .set macro
+ .set reorder
+
+$L58:
+ .set noreorder
+ .set nomacro
+ beq $20,$0,$L49
+ lui $2,%hi(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+ addiu $2,$2,%lo(fast_pppoe_info)
+ addu $4,$18,$2
+ lhu $2,52($4)
+ #nop
+ .set noreorder
+ .set nomacro
+ bne $2,$20,$L67
+ addiu $19,$19,1
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ j $L46
+ move $2,$4
+ .set macro
+ .set reorder
+
+$L49:
+ addiu $19,$19,1
+$L67:
+ slt $2,$19,16
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L60
+ addiu $18,$18,88
+ .set macro
+ .set reorder
+
+ move $2,$0
+$L46:
+ lw $31,52($sp)
+ lw $fp,48($sp)
+ lw $23,44($sp)
+ lw $22,40($sp)
+ lw $21,36($sp)
+ lw $20,32($sp)
+ lw $19,28($sp)
+ lw $18,24($sp)
+ lw $17,20($sp)
+ lw $16,16($sp)
+ .set noreorder
+ .set nomacro
+ j $31
+ addiu $sp,$sp,56
+ .set macro
+ .set reorder
+
+ .end find_pppoe_info
+ .section .text.set_pppoe_info,"ax",@progbits
+ .align 2
+ .globl set_pppoe_info
+ .ent set_pppoe_info
+ .type set_pppoe_info, @function
+set_pppoe_info:
+ .set nomips16
+ .frame $sp,72,$31 # vars= 0, regs= 9/0, args= 32, gp= 0
+ .mask 0x80ff0000,-8
+ .fmask 0x00000000,0
+ addiu $sp,$sp,-72
+ sw $22,56($sp)
+ sw $21,52($sp)
+ sw $19,44($sp)
+ lw $22,92($sp)
+ lw $19,88($sp)
+ lw $21,96($sp)
+ sw $20,48($sp)
+ sw $18,40($sp)
+ andi $20,$6,0xffff
+ move $18,$5
+ move $6,$0
+ move $5,$0
+ sw $23,60($sp)
+ sw $17,36($sp)
+ sw $16,32($sp)
+ sw $31,64($sp)
+ sw $19,16($sp)
+ sw $22,20($sp)
+ sw $21,24($sp)
+ move $17,$4
+ .set noreorder
+ .set nomacro
+ jal find_pppoe_info
+ move $23,$7
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L69
+ move $16,$2
+ .set macro
+ .set reorder
+
+ lui $16,%hi(fast_pppoe_info)
+ move $5,$0
+ addiu $4,$16,%lo(fast_pppoe_info)
+$L75:
+ lhu $2,54($4)
+ addiu $5,$5,1
+ .set noreorder
+ .set nomacro
+ beq $2,$0,$L88
+ slt $3,$5,16
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ bne $3,$0,$L75
+ addiu $4,$4,88
+ .set macro
+ .set reorder
+
+ addiu $4,$16,%lo(fast_pppoe_info)
+ move $5,$0
+ .set noreorder
+ .set nomacro
+ jal memset
+ li $6,1408 # 0x580
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ j $L69
+ addiu $16,$16,%lo(fast_pppoe_info)
+ .set macro
+ .set reorder
+
+$L88:
+ .set noreorder
+ .set nomacro
+ beq $4,$0,$L68
+ move $16,$4
+ .set macro
+ .set reorder
+
+$L69:
+ beq $20,$0,$L77
+ sh $20,52($16)
+$L77:
+ beq $23,$0,$L78
+ sw $23,44($16)
+$L78:
+ beq $19,$0,$L79
+ sw $19,48($16)
+$L79:
+ .set noreorder
+ .set nomacro
+ beq $17,$0,$L80
+ addiu $2,$16,16
+ .set macro
+ .set reorder
+
+#APP
+ .set noreorder
+ .set noat
+1: lbu $1,($17)
+ addiu $17,1
+ sb $1,($2)
+ bnez $1,1b
+ addiu $2,1
+ .set at
+ .set reorder
+#NO_APP
+$L80:
+ .set noreorder
+ .set nomacro
+ beq $18,$0,$L82
+ move $3,$16
+ .set macro
+ .set reorder
+
+#APP
+ .set noreorder
+ .set noat
+1: lbu $1,($18)
+ addiu $18,1
+ sb $1,($3)
+ bnez $1,1b
+ addiu $3,1
+ .set at
+ .set reorder
+#NO_APP
+$L82:
+ .set noreorder
+ .set nomacro
+ beq $21,$0,$L84
+ move $5,$21
+ .set macro
+ .set reorder
+
+ addiu $4,$16,38
+ .set noreorder
+ .set nomacro
+ jal memcpy
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+$L84:
+ .set noreorder
+ .set nomacro
+ beq $22,$0,$L85
+ move $5,$22
+ .set macro
+ .set reorder
+
+ addiu $4,$16,32
+ .set noreorder
+ .set nomacro
+ jal memcpy
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+$L85:
+ li $2,1
+ sh $2,54($16)
+$L68:
+ lw $31,64($sp)
+ lw $23,60($sp)
+ lw $22,56($sp)
+ lw $21,52($sp)
+ lw $20,48($sp)
+ lw $19,44($sp)
+ lw $18,40($sp)
+ lw $17,36($sp)
+ lw $16,32($sp)
+ move $2,$0
+ .set noreorder
+ .set nomacro
+ j $31
+ addiu $sp,$sp,72
+ .set macro
+ .set reorder
+
+ .end set_pppoe_info
+ .section .text.get_pppoe_last_rx_tx,"ax",@progbits
+ .align 2
+ .globl get_pppoe_last_rx_tx
+ .ent get_pppoe_last_rx_tx
+ .type get_pppoe_last_rx_tx, @function
+get_pppoe_last_rx_tx:
+ .set nomips16
+ .frame $sp,40,$31 # vars= 0, regs= 1/0, args= 32, gp= 0
+ .mask 0x80000000,-8
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+
+ addiu $sp,$sp,-40
+ lw $2,56($sp)
+ andi $6,$6,0xffff
+ sw $31,32($sp)
+ sw $2,16($sp)
+ lw $2,60($sp)
+ nop
+ sw $2,20($sp)
+ lw $2,64($sp)
+ jal find_pppoe_info
+ sw $2,24($sp)
+
+ beq $2,$0,$L90
+ move $4,$2
+
+ lw $3,56($2)
+ lw $2,68($sp)
+ nop
+ sw $3,0($2)
+ lw $3,60($4)
+ lw $2,72($sp)
+ nop
+ sw $3,0($2)
+$L90:
+ lw $31,32($sp)
+ move $2,$0
+ j $31
+ addiu $sp,$sp,40
+
+ .set macro
+ .set reorder
+ .end get_pppoe_last_rx_tx
+ .section .text.check_and_pull_pppoe_hdr,"ax",@progbits
+ .align 2
+ .globl check_and_pull_pppoe_hdr
+ .ent check_and_pull_pppoe_hdr
+ .type check_and_pull_pppoe_hdr, @function
+check_and_pull_pppoe_hdr:
+ .set nomips16
+ .frame $sp,48,$31 # vars= 0, regs= 8/0, args= 16, gp= 0
+ .mask 0x807f0000,-4
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+
+ addiu $sp,$sp,-48
+ sw $19,28($sp)
+ sw $31,44($sp)
+ sw $22,40($sp)
+ sw $21,36($sp)
+ sw $20,32($sp)
+ sw $18,24($sp)
+ sw $17,20($sp)
+ sw $16,16($sp)
+ lui $2,%hi(fast_pppoe_fw)
+ lw $2,%lo(fast_pppoe_fw)($2)
+ move $19,$4
+ beq $2,$0,$L91
+ move $3,$0
+
+ jal rtl_set_skb_pppoe_flag
+ move $5,$0
+
+ jal rtl_skb_mac_header
+ move $4,$19
+
+ move $17,$2
+ beq $2,$0,$L91
+ move $3,$0
+
+ lhu $3,12($2)
+ li $2,34916 # 0x8864
+ bne $3,$2,$L91
+ move $3,$0
+
+ lhu $3,20($17)
+ li $2,33 # 0x21
+ bne $3,$2,$L91
+ move $3,$0
+
+ lhu $22,16($17)
+ addiu $21,$17,6
+ move $20,$0
+ move $18,$0
+$L102:
+ lui $2,%hi(fast_pppoe_info)
+ addiu $2,$2,%lo(fast_pppoe_info)
+ addu $16,$18,$2
+ lhu $2,54($16)
+ nop
+ beq $2,$0,$L98
+ addiu $20,$20,1
+
+ lhu $2,52($16)
+ lui $4,%hi(fast_pppoe_info+38)
+ addiu $4,$4,%lo(fast_pppoe_info+38)
+ addu $4,$18,$4
+ move $5,$21
+ bne $2,$22,$L98
+ li $6,6 # 0x6
+
+ jal memcmp
+ nop
+
+ beq $2,$0,$L107
+ nop
+
+$L98:
+ slt $2,$20,16
+ bne $2,$0,$L102
+ addiu $18,$18,88
+
+ j $L91
+ move $3,$0
+
+$L107:
+ bne $16,$0,$L103
+ move $18,$16
+
+ j $L91
+ move $3,$0
+
+$L103:
+ jal rtl_get_dev_by_name
+ addiu $4,$16,16
+
+ move $20,$2
+ beq $2,$0,$L91
+ move $3,$0
+
+ addiu $16,$17,22
+ move $5,$16
+ jal rtl_set_skb_network_header
+ move $4,$19
+
+ move $5,$16
+ jal rtl_set_skb_transport_header
+ move $4,$19
+
+ li $5,8 # 0x8
+ jal rtl_skb_pull
+ move $4,$19
+
+ jal rtl_get_skb_dev
+ move $4,$19
+
+ move $5,$2
+ jal rtl_set_skb_rx_dev
+ move $4,$19
+
+ move $4,$19
+ jal rtl_set_skb_protocol
+ li $5,2048 # 0x800
+
+ move $5,$20
+ jal rtl_set_skb_dev
+ move $4,$19
+
+ jal rtl_get_skb_dev
+ move $4,$19
+
+ lw $3,80($2)
+ move $4,$19
+ addiu $3,$3,1
+ jal rtl_get_skb_dev
+ sw $3,80($2)
+
+ move $16,$2
+ jal rtl_get_skb_len
+ move $4,$19
+
+ lw $3,88($16)
+ move $4,$19
+ li $5,1 # 0x1
+ addu $3,$3,$2
+ jal rtl_set_skb_pppoe_flag
+ sw $3,88($16)
+
+ lui $2,%hi(jiffies)
+ lw $2,%lo(jiffies)($2)
+ li $3,1 # 0x1
+ sw $2,56($18)
+$L91:
+ lw $31,44($sp)
+ lw $22,40($sp)
+ lw $21,36($sp)
+ lw $20,32($sp)
+ lw $19,28($sp)
+ lw $18,24($sp)
+ lw $17,20($sp)
+ lw $16,16($sp)
+ move $2,$3
+ j $31
+ addiu $sp,$sp,48
+
+ .set macro
+ .set reorder
+ .end check_and_pull_pppoe_hdr
+ .section .text.check_and_restore_pppoe_hdr,"ax",@progbits
+ .align 2
+ .globl check_and_restore_pppoe_hdr
+ .ent check_and_restore_pppoe_hdr
+ .type check_and_restore_pppoe_hdr, @function
+check_and_restore_pppoe_hdr:
+ .set nomips16
+ .frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0
+ .mask 0x80030000,-8
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+
+ addiu $sp,$sp,-32
+ sw $17,20($sp)
+ sw $31,24($sp)
+ sw $16,16($sp)
+ lui $2,%hi(fast_pppoe_fw)
+ lw $2,%lo(fast_pppoe_fw)($2)
+ nop
+ beq $2,$0,$L109
+ move $17,$4
+
+ jal rtl_get_skb_pppoe_flag
+ nop
+
+ li $5,8 # 0x8
+ beq $2,$0,$L109
+ move $4,$17
+
+ jal rtl_skb_push
+ nop
+
+ jal rtl_get_skb_data
+ move $4,$17
+
+ move $5,$2
+ jal rtl_set_skb_network_header
+ move $4,$17
+
+ jal rtl_get_skb_data
+ move $4,$17
+
+ move $5,$2
+ jal rtl_set_skb_transport_header
+ move $4,$17
+
+ jal rtl_get_skb_dev
+ move $4,$17
+
+ lw $3,80($2)
+ move $4,$17
+ addiu $3,$3,-1
+ jal rtl_get_skb_dev
+ sw $3,80($2)
+
+ move $16,$2
+ jal rtl_get_skb_len
+ move $4,$17
+
+ lw $3,88($16)
+ move $4,$17
+ subu $3,$3,$2
+ jal rtl_get_skb_rx_dev
+ sw $3,88($16)
+
+ move $5,$2
+ jal rtl_set_skb_dev
+ move $4,$17
+
+ move $4,$17
+ jal rtl_set_skb_protocol
+ li $5,34916 # 0x8864
+
+ move $4,$17
+ lw $31,24($sp)
+ lw $17,20($sp)
+ lw $16,16($sp)
+ move $5,$0
+ j rtl_set_skb_pppoe_flag
+ addiu $sp,$sp,32
+
+$L109:
+ lw $31,24($sp)
+ lw $17,20($sp)
+ lw $16,16($sp)
+ j $31
+ addiu $sp,$sp,32
+
+ .set macro
+ .set reorder
+ .end check_and_restore_pppoe_hdr
+ .rdata
+ .align 2
+$LC4:
+ .ascii "ppp\000"
+ .section .text.fast_pppoe_xmit,"ax",@progbits
+ .align 2
+ .globl fast_pppoe_xmit
+ .ent fast_pppoe_xmit
+ .type fast_pppoe_xmit, @function
+fast_pppoe_xmit:
+ .set nomips16
+ .frame $sp,56,$31 # vars= 0, regs= 5/0, args= 32, gp= 0
+ .mask 0x800f0000,-8
+ .fmask 0x00000000,0
+ addiu $sp,$sp,-56
+ sw $17,36($sp)
+ sw $31,48($sp)
+ sw $19,44($sp)
+ sw $18,40($sp)
+ sw $16,32($sp)
+ lui $2,%hi(fast_pppoe_fw)
+ lw $2,%lo(fast_pppoe_fw)($2)
+ move $17,$4
+ .set noreorder
+ .set nomacro
+ beq $2,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ lui $2,%hi(gQosEnabled)
+ lw $2,%lo(gQosEnabled)($2)
+ #nop
+ bne $2,$0,$L112
+ jal rtl_get_skb_dev
+ .set noreorder
+ .set nomacro
+ beq $2,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_dev
+ move $4,$17
+ .set macro
+ .set reorder
+
+ lui $5,%hi($LC4)
+ addiu $4,$5,%lo($LC4)
+ li $3,3 # 0x3
+#APP
+ .set noreorder
+ .set noat
+1: lbu $5,($2)
+ beqz $3,2f
+ lbu $1,($4)
+ subu $3,1
+ bne $1,$5,3f
+ addiu $2,1
+ bnez $5,1b
+ addiu $4,1
+2:
+ nop
+ move $5,$1
+3: subu $5,$1
+ .set at
+ .set reorder
+#NO_APP
+ .set noreorder
+ .set nomacro
+ bne $5,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_skb_headroom
+ move $4,$17
+ .set macro
+ .set reorder
+
+ sltu $2,$2,22
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_skb_cloned
+ move $4,$17
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_skb_shared
+ move $4,$17
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ bne $2,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_dev
+ move $4,$17
+ .set macro
+ .set reorder
+
+ move $4,$2
+ move $5,$0
+ move $6,$0
+ move $7,$0
+ sw $0,16($sp)
+ sw $0,20($sp)
+ .set noreorder
+ .set nomacro
+ jal find_pppoe_info
+ sw $0,24($sp)
+ .set macro
+ .set reorder
+
+ move $16,$2
+ .set noreorder
+ .set nomacro
+ beq $2,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ lb $2,16($2)
+ #nop
+ beq $2,$0,$L112
+ lb $2,0($16)
+ #nop
+ beq $2,$0,$L112
+ lhu $2,52($16)
+ #nop
+ beq $2,$0,$L112
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_dev
+ move $4,$17
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_len
+ move $4,$17
+ .set macro
+ .set reorder
+
+ move $4,$16
+ .set noreorder
+ .set nomacro
+ jal rtl_get_dev_by_name
+ move $19,$2
+ .set macro
+ .set reorder
+
+ move $18,$2
+ .set noreorder
+ .set nomacro
+ beq $2,$0,$L112
+ move $3,$0
+ .set macro
+ .set reorder
+
+ li $5,2 # 0x2
+ .set noreorder
+ .set nomacro
+ jal rtl_skb_push
+ move $4,$17
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_data
+ move $4,$17
+ .set macro
+ .set reorder
+
+ li $3,33
+ sh $3,0($2)
+ li $5,6 # 0x6
+ .set noreorder
+ .set nomacro
+ jal rtl_skb_push
+ move $4,$17
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_data
+ move $4,$17
+ .set macro
+ .set reorder
+
+ li $3,17 # 0x11
+ sb $3,0($2)
+ sb $0,1($2)
+ lhu $6,52($16)
+ addiu $3,$19,2
+ andi $3,$3,0xffff
+ srl $4,$6,8
+ srl $5,$3,8
+ sb $6,3($2)
+ sb $3,5($2)
+ sb $4,2($2)
+ sb $5,4($2)
+ move $4,$17
+ .set noreorder
+ .set nomacro
+ jal rtl_set_skb_dev
+ move $5,$18
+ .set macro
+ .set reorder
+
+ li $5,2 # 0x2
+ .set noreorder
+ .set nomacro
+ jal rtl_skb_push
+ move $4,$17
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_data
+ move $4,$17
+ .set macro
+ .set reorder
+
+ li $3,-30620
+ sh $3,0($2)
+ li $5,12 # 0xc
+ .set noreorder
+ .set nomacro
+ jal rtl_skb_push
+ move $4,$17
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_data
+ move $4,$17
+ .set macro
+ .set reorder
+
+ move $4,$2
+ addiu $5,$16,38
+ .set noreorder
+ .set nomacro
+ jal memcpy
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal rtl_get_skb_data
+ move $4,$17
+ .set macro
+ .set reorder
+
+ addiu $4,$2,6
+ addiu $5,$18,320
+ .set noreorder
+ .set nomacro
+ jal memcpy
+ li $6,6 # 0x6
+ .set macro
+ .set reorder
+
+ .set noreorder
+ .set nomacro
+ jal ip_finish_output4
+ move $4,$17
+ .set macro
+ .set reorder
+
+ lui $2,%hi(jiffies)
+ lw $2,%lo(jiffies)($2)
+ li $3,1 # 0x1
+ sw $2,60($16)
+$L112:
+ lw $31,48($sp)
+ lw $19,44($sp)
+ lw $18,40($sp)
+ lw $17,36($sp)
+ lw $16,32($sp)
+ move $2,$3
+ .set noreorder
+ .set nomacro
+ j $31
+ addiu $sp,$sp,56
+ .set macro
+ .set reorder
+
+ .end fast_pppoe_xmit
+ .globl fast_pppoe_info
+ .section .bss
+ .align 2
+ .type fast_pppoe_info, @object
+ .size fast_pppoe_info, 1408
+fast_pppoe_info:
+ .space 1408
+ .ident "GCC: (GNU) 3.4.6-1.3.6"