X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=555418%2Fmips.s;fp=555418%2Fmips.s;h=ae863129bd45f031500678e74018bf31e39cba0d;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/555418/mips.s b/555418/mips.s new file mode 100644 index 0000000..ae86312 --- /dev/null +++ b/555418/mips.s @@ -0,0 +1,205 @@ + .file 1 "mips.c" + .section .mdebug.abi64 + .previous + .gnu_attribute 4, 1 + .abicalls + .text + .align 2 + .set nomips16 + .ent engine_getbits + .type engine_getbits, @function +engine_getbits: + .frame $fp,32,$31 # vars= 16, regs= 1/0, args= 0, gp= 0 + .mask 0x40000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + daddiu $sp,$sp,-32 + sd $fp,24($sp) + move $fp,$sp + move $3,$5 + move $2,$6 + sll $4,$4,0 + sw $4,0($fp) + sll $3,$3,0 + sw $3,4($fp) + sll $2,$2,0 + sw $2,8($fp) + lw $3,0($fp) + lw $2,4($fp) + srl $2,$3,$2 + move $3,$2 + li $4,1 # 0x1 + lw $2,8($fp) + sll $2,$4,$2 + addiu $2,$2,-1 + and $2,$3,$2 + move $sp,$fp + ld $fp,24($sp) + daddiu $sp,$sp,32 + j $31 + nop + + .set macro + .set reorder + .end engine_getbits + .size engine_getbits, .-engine_getbits + .align 2 + .set nomips16 + .ent engine_decode + .type engine_decode, @function +engine_decode: + .frame $fp,96,$31 # vars= 64, regs= 3/0, args= 0, gp= 0 + .mask 0xd0000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + daddiu $sp,$sp,-96 + sd $31,88($sp) + sd $fp,80($sp) + sd $28,72($sp) + move $fp,$sp + lui $28,%hi(%neg(%gp_rel(engine_decode))) + daddu $28,$28,$25 + daddiu $28,$28,%lo(%neg(%gp_rel(engine_decode))) + sd $4,32($fp) + sd $5,40($fp) + move $2,$6 + sll $2,$2,0 + sw $2,48($fp) + lw $2,48($fp) + move $4,$2 + li $5,26 # 0x1a + li $6,6 # 0x6 + ld $2,%got_page(engine_getbits)($28) + daddiu $2,$2,%got_ofst(engine_getbits) + move $25,$2 + .reloc 1f,R_MIPS_JALR,engine_getbits +1: jalr $25 + nop + + sw $2,0($fp) + lw $2,0($fp) + dsll $2,$2,3 + ld $3,32($fp) + daddu $2,$3,$2 + ld $2,0($2) + sd $2,8($fp) + lw $2,48($fp) + move $4,$2 + move $5,$0 + li $6,6 # 0x6 + ld $2,%got_page(engine_getbits)($28) + daddiu $2,$2,%got_ofst(engine_getbits) + move $25,$2 + .reloc 1f,R_MIPS_JALR,engine_getbits +1: jalr $25 + nop + + dsll $2,$2,32 + dsrl $2,$2,32 + dsll $2,$2,3 + ld $3,40($fp) + daddu $2,$3,$2 + ld $2,0($2) + sd $2,16($fp) + lw $2,0($fp) + bne $2,$0,.L4 + nop + + ld $2,16($fp) + b .L5 + nop + +.L4: + ld $2,8($fp) +.L5: + move $sp,$fp + ld $31,88($sp) + ld $fp,80($sp) + ld $28,72($sp) + daddiu $sp,$sp,96 + j $31 + nop + + .set macro + .set reorder + .end engine_decode + .size engine_decode, .-engine_decode + .align 2 + .set nomips16 + .ent engine_sign + .type engine_sign, @function +engine_sign: + .frame $fp,48,$31 # vars= 32, regs= 1/0, args= 0, gp= 0 + .mask 0x40000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + daddiu $sp,$sp,-48 + sd $fp,40($sp) + move $fp,$sp + move $3,$4 + move $2,$5 + sll $3,$3,0 + sw $3,16($fp) + sll $2,$2,0 + sw $2,20($fp) + lw $2,20($fp) + addiu $2,$2,-1 + sll $2,$2,0 + li $3,1 # 0x1 + sll $2,$3,$2 + sw $2,0($fp) + lw $3,16($fp) + lw $2,0($fp) + xor $2,$3,$2 + move $3,$2 + lw $2,0($fp) + subu $2,$3,$2 + move $sp,$fp + ld $fp,40($sp) + daddiu $sp,$sp,48 + j $31 + nop + + .set macro + .set reorder + .end engine_sign + .size engine_sign, .-engine_sign + .align 2 + .set nomips16 + .ent engine_monitor + .type engine_monitor, @function +engine_monitor: + .frame $fp,32,$31 # vars= 16, regs= 1/0, args= 0, gp= 0 + .mask 0x40000000,-8 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + daddiu $sp,$sp,-32 + sd $fp,24($sp) + move $fp,$sp + move $8,$4 + move $4,$5 + move $3,$6 + move $2,$7 + sll $5,$8,0 + sw $5,0($fp) + sll $4,$4,0 + sw $4,4($fp) + sll $3,$3,0 + sw $3,8($fp) + sll $2,$2,0 + sw $2,12($fp) + nop + move $sp,$fp + ld $fp,24($sp) + daddiu $sp,$sp,32 + j $31 + nop + + .set macro + .set reorder + .end engine_monitor + .size engine_monitor, .-engine_monitor