diff options
author | Roman Yeryomin <roman@advem.lv> | 2013-05-17 20:40:24 +0300 |
---|---|---|
committer | Roman Yeryomin <roman@advem.lv> | 2013-05-17 20:40:24 +0300 |
commit | e6d87036412b952cb083eff2dc716aee97a771f2 (patch) | |
tree | 273dd3daaa85553832d3cc6d48276229dc7fbe09 /target/linux/realtek/files/net/rtl/fastpath/96E/fast_pppoe_core.S | |
parent | a18fec42221baa52fff4c5ffd45ec8f32e3add36 (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.S | 1693 |
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" |