Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,282 @@
#include "mips_arch.h"
.text
.set noat
.set noreorder
.align 5
.globl bn_mul_mont
.ent bn_mul_mont
bn_mul_mont:
slt $1,$9,4
bnez $1,1f
li $2,0
slt $1,$9,17 # on in-order CPU
bnez $1,bn_mul_mont_internal
nop
1: jr $31
li $4,0
.end bn_mul_mont
.align 5
.ent bn_mul_mont_internal
bn_mul_mont_internal:
.frame $30,14*8,$31
.mask 0x40000000|16711680,-8
dsubu $29,14*8
sd $30,(14-1)*8($29)
sd $23,(14-2)*8($29)
sd $22,(14-3)*8($29)
sd $21,(14-4)*8($29)
sd $20,(14-5)*8($29)
sd $19,(14-6)*8($29)
sd $18,(14-7)*8($29)
sd $17,(14-8)*8($29)
sd $16,(14-9)*8($29)
move $30,$29
.set reorder
ld $8,0($8)
ld $13,0($6) # bp[0]
ld $12,0($5) # ap[0]
ld $14,0($7) # np[0]
dsubu $29,2*8 # place for two extra words
sll $9,3
li $1,-4096
dsubu $29,$9
and $29,$1
dmultu ($12,$13)
ld $17,8($5)
ld $19,8($7)
mflo ($10,$12,$13)
mfhi ($11,$12,$13)
dmultu ($10,$8)
mflo ($23,$10,$8)
dmultu ($17,$13)
mflo ($16,$17,$13)
mfhi ($17,$17,$13)
dmultu ($14,$23)
mflo ($24,$14,$23)
mfhi ($25,$14,$23)
dmultu ($19,$23)
daddu $24,$10
sltu $1,$24,$10
daddu $25,$1
mflo ($18,$19,$23)
mfhi ($19,$19,$23)
move $15,$29
li $22,2*8
.align 4
.L1st:
.set noreorder
daddu $12,$5,$22
daddu $14,$7,$22
ld $12,($12)
ld $14,($14)
dmultu ($12,$13)
daddu $10,$16,$11
daddu $24,$18,$25
sltu $1,$10,$11
sltu $2,$24,$25
daddu $11,$17,$1
daddu $25,$19,$2
mflo ($16,$12,$13)
mfhi ($17,$12,$13)
daddu $24,$10
sltu $1,$24,$10
dmultu ($14,$23)
daddu $25,$1
addu $22,8
sd $24,($15)
sltu $2,$22,$9
mflo ($18,$14,$23)
mfhi ($19,$14,$23)
bnez $2,.L1st
daddu $15,8
.set reorder
daddu $10,$16,$11
sltu $1,$10,$11
daddu $11,$17,$1
daddu $24,$18,$25
sltu $2,$24,$25
daddu $25,$19,$2
daddu $24,$10
sltu $1,$24,$10
daddu $25,$1
sd $24,($15)
daddu $25,$11
sltu $1,$25,$11
sd $25,8($15)
sd $1,2*8($15)
li $21,8
.align 4
.Louter:
daddu $13,$6,$21
ld $13,($13)
ld $12,($5)
ld $17,8($5)
ld $20,($29)
dmultu ($12,$13)
ld $14,($7)
ld $19,8($7)
mflo ($10,$12,$13)
mfhi ($11,$12,$13)
daddu $10,$20
dmultu ($10,$8)
sltu $1,$10,$20
daddu $11,$1
mflo ($23,$10,$8)
dmultu ($17,$13)
mflo ($16,$17,$13)
mfhi ($17,$17,$13)
dmultu ($14,$23)
mflo ($24,$14,$23)
mfhi ($25,$14,$23)
dmultu ($19,$23)
daddu $24,$10
sltu $1,$24,$10
daddu $25,$1
mflo ($18,$19,$23)
mfhi ($19,$19,$23)
move $15,$29
li $22,2*8
ld $20,8($15)
.align 4
.Linner:
.set noreorder
daddu $12,$5,$22
daddu $14,$7,$22
ld $12,($12)
ld $14,($14)
dmultu ($12,$13)
daddu $10,$16,$11
daddu $24,$18,$25
sltu $1,$10,$11
sltu $2,$24,$25
daddu $11,$17,$1
daddu $25,$19,$2
mflo ($16,$12,$13)
mfhi ($17,$12,$13)
daddu $10,$20
addu $22,8
dmultu ($14,$23)
sltu $1,$10,$20
daddu $24,$10
daddu $11,$1
sltu $2,$24,$10
ld $20,2*8($15)
daddu $25,$2
sltu $1,$22,$9
mflo ($18,$14,$23)
mfhi ($19,$14,$23)
sd $24,($15)
bnez $1,.Linner
daddu $15,8
.set reorder
daddu $10,$16,$11
sltu $1,$10,$11
daddu $11,$17,$1
daddu $10,$20
sltu $2,$10,$20
daddu $11,$2
ld $20,2*8($15)
daddu $24,$18,$25
sltu $1,$24,$25
daddu $25,$19,$1
daddu $24,$10
sltu $2,$24,$10
daddu $25,$2
sd $24,($15)
daddu $24,$25,$11
sltu $25,$24,$11
daddu $24,$20
sltu $1,$24,$20
daddu $25,$1
sd $24,8($15)
sd $25,2*8($15)
addu $21,8
sltu $2,$21,$9
bnez $2,.Louter
.set noreorder
daddu $20,$29,$9 # &tp[num]
move $15,$29
move $5,$29
li $11,0 # clear borrow bit
.align 4
.Lsub: ld $10,($15)
ld $24,($7)
daddu $15,8
daddu $7,8
dsubu $24,$10,$24 # tp[i]-np[i]
sgtu $1,$24,$10
dsubu $10,$24,$11
sgtu $11,$10,$24
sd $10,($4)
or $11,$1
sltu $1,$15,$20
bnez $1,.Lsub
daddu $4,8
dsubu $11,$25,$11 # handle upmost overflow bit
move $15,$29
dsubu $4,$9 # restore rp
not $25,$11
.Lcopy: ld $14,($15) # conditional move
ld $12,($4)
sd $0,($15)
daddu $15,8
and $14,$11
and $12,$25
or $12,$14
sltu $1,$15,$20
sd $12,($4)
bnez $1,.Lcopy
daddu $4,8
li $4,1
li $2,1
.set noreorder
move $29,$30
ld $30,(14-1)*8($29)
ld $23,(14-2)*8($29)
ld $22,(14-3)*8($29)
ld $21,(14-4)*8($29)
ld $20,(14-5)*8($29)
ld $19,(14-6)*8($29)
ld $18,(14-7)*8($29)
ld $17,(14-8)*8($29)
ld $16,(14-9)*8($29)
jr $31
daddu $29,14*8
.end bn_mul_mont_internal
.rdata
.asciiz "Montgomery Multiplication for MIPS, CRYPTOGAMS by <appro@openssl.org>"

View File

@ -0,0 +1,32 @@
/*
* WARNING: do not edit!
* Generated by util/mkbuildinf.pl
*
* Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#define PLATFORM "platform: linux64-mips64"
#define DATE "built on: Wed Mar 5 21:06:35 2025 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
* workaround for the situation where CFLAGS gets too long for a C90 string
* literal
*/
static const char compiler_flags[] = {
'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f',
'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','a',
'b','i','=','6','4',' ','-','m','i','p','s','3',' ','-','W','a',
',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-',
'W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S',
'S','L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ',
'-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D',
'O','P','E','N','S','S','L','_','B','U','I','L','D','I','N','G',
'_','O','P','E','N','S','S','L',' ','-','D','N','D','E','B','U',
'G','\0'
};

View File

@ -0,0 +1,333 @@
#include "mips_arch.h"
#ifdef MIPSEB
# define MSB 0
# define LSB 7
#else
# define MSB 7
# define LSB 0
#endif
.text
.set noat
.set noreorder
.align 5
.globl poly1305_init
.ent poly1305_init
poly1305_init:
.frame $29,0,$31
.set reorder
sd $0,0($4)
sd $0,8($4)
sd $0,16($4)
beqz $5,.Lno_key
#if defined(_MIPS_ARCH_MIPS64R6)
ld $8,0($5)
ld $9,8($5)
#else
ldl $8,0+MSB($5)
ldl $9,8+MSB($5)
ldr $8,0+LSB($5)
ldr $9,8+LSB($5)
#endif
#ifdef MIPSEB
# if defined(_MIPS_ARCH_MIPS64R2)
dsbh $8,$8 # byte swap
dsbh $9,$9
dshd $8,$8
dshd $9,$9
# else
ori $10,$0,0xFF
dsll $1,$10,32
or $10,$1 # 0x000000FF000000FF
and $11,$8,$10 # byte swap
and $2,$9,$10
dsrl $1,$8,24
dsrl $24,$9,24
dsll $11,24
dsll $2,24
and $1,$10
and $24,$10
dsll $10,8 # 0x0000FF000000FF00
or $11,$1
or $2,$24
and $1,$8,$10
and $24,$9,$10
dsrl $8,8
dsrl $9,8
dsll $1,8
dsll $24,8
and $8,$10
and $9,$10
or $11,$1
or $2,$24
or $8,$11
or $9,$2
dsrl $11,$8,32
dsrl $2,$9,32
dsll $8,32
dsll $9,32
or $8,$11
or $9,$2
# endif
#endif
li $10,1
dsll $10,32
daddiu $10,-63
dsll $10,28
daddiu $10,-1 # 0ffffffc0fffffff
and $8,$10
daddiu $10,-3 # 0ffffffc0ffffffc
and $9,$10
sd $8,24($4)
dsrl $10,$9,2
sd $9,32($4)
daddu $10,$9 # s1 = r1 + (r1 >> 2)
sd $10,40($4)
.Lno_key:
li $2,0 # return 0
jr $31
.end poly1305_init
.align 5
.globl poly1305_blocks
.ent poly1305_blocks
poly1305_blocks:
.set noreorder
dsrl $6,4 # number of complete blocks
bnez $6,poly1305_blocks_internal
nop
jr $31
nop
.end poly1305_blocks
.align 5
.ent poly1305_blocks_internal
poly1305_blocks_internal:
.frame $29,6*8,$31
.mask 0x00030000,-8
.set noreorder
dsubu $29,6*8
sd $17,40($29)
sd $16,32($29)
.set reorder
ld $12,0($4) # load hash value
ld $13,8($4)
ld $14,16($4)
ld $15,24($4) # load key
ld $16,32($4)
ld $17,40($4)
.Loop:
#if defined(_MIPS_ARCH_MIPS64R6)
ld $8,0($5) # load input
ld $9,8($5)
#else
ldl $8,0+MSB($5) # load input
ldl $9,8+MSB($5)
ldr $8,0+LSB($5)
ldr $9,8+LSB($5)
#endif
daddiu $6,-1
daddiu $5,16
#ifdef MIPSEB
# if defined(_MIPS_ARCH_MIPS64R2)
dsbh $8,$8 # byte swap
dsbh $9,$9
dshd $8,$8
dshd $9,$9
# else
ori $10,$0,0xFF
dsll $1,$10,32
or $10,$1 # 0x000000FF000000FF
and $11,$8,$10 # byte swap
and $2,$9,$10
dsrl $1,$8,24
dsrl $24,$9,24
dsll $11,24
dsll $2,24
and $1,$10
and $24,$10
dsll $10,8 # 0x0000FF000000FF00
or $11,$1
or $2,$24
and $1,$8,$10
and $24,$9,$10
dsrl $8,8
dsrl $9,8
dsll $1,8
dsll $24,8
and $8,$10
and $9,$10
or $11,$1
or $2,$24
or $8,$11
or $9,$2
dsrl $11,$8,32
dsrl $2,$9,32
dsll $8,32
dsll $9,32
or $8,$11
or $9,$2
# endif
#endif
daddu $12,$8 # accumulate input
daddu $13,$9
sltu $10,$12,$8
sltu $11,$13,$9
daddu $13,$10
dmultu ($15,$12) # h0*r0
daddu $14,$7
sltu $10,$13,$10
mflo ($8,$15,$12)
mfhi ($9,$15,$12)
dmultu ($17,$13) # h1*5*r1
daddu $10,$11
daddu $14,$10
mflo ($10,$17,$13)
mfhi ($11,$17,$13)
dmultu ($16,$12) # h0*r1
daddu $8,$10
daddu $9,$11
mflo ($1,$16,$12)
mfhi ($25,$16,$12)
sltu $10,$8,$10
daddu $9,$10
dmultu ($15,$13) # h1*r0
daddu $9,$1
sltu $1,$9,$1
mflo ($10,$15,$13)
mfhi ($11,$15,$13)
daddu $25,$1
dmultu ($17,$14) # h2*5*r1
daddu $9,$10
daddu $25,$11
mflo ($1,$17,$14)
dmultu ($15,$14) # h2*r0
sltu $10,$9,$10
daddu $25,$10
mflo ($2,$15,$14)
daddu $9,$1
daddu $25,$2
sltu $1,$9,$1
daddu $25,$1
li $10,-4 # final reduction
and $10,$25
dsrl $11,$25,2
andi $14,$25,3
daddu $10,$11
daddu $12,$8,$10
sltu $10,$12,$10
daddu $13,$9,$10
sltu $10,$13,$10
daddu $14,$14,$10
bnez $6,.Loop
sd $12,0($4) # store hash value
sd $13,8($4)
sd $14,16($4)
.set noreorder
ld $17,40($29) # epilogue
ld $16,32($29)
jr $31
daddu $29,6*8
.end poly1305_blocks_internal
.align 5
.globl poly1305_emit
.ent poly1305_emit
poly1305_emit:
.frame $29,0,$31
.set reorder
ld $10,0($4)
ld $11,8($4)
ld $1,16($4)
daddiu $8,$10,5 # compare to modulus
sltiu $2,$8,5
daddu $9,$11,$2
sltu $2,$9,$2
daddu $1,$1,$2
dsrl $1,2 # see if it carried/borrowed
dsubu $1,$0,$1
nor $2,$0,$1
and $8,$1
and $10,$2
and $9,$1
and $11,$2
or $8,$10
or $9,$11
lwu $10,0($6) # load nonce
lwu $11,4($6)
lwu $1,8($6)
lwu $2,12($6)
dsll $11,32
dsll $2,32
or $10,$11
or $1,$2
daddu $8,$10 # accumulate nonce
daddu $9,$1
sltu $10,$8,$10
daddu $9,$10
dsrl $10,$8,8 # write mac value
dsrl $11,$8,16
dsrl $1,$8,24
sb $8,0($5)
dsrl $2,$8,32
sb $10,1($5)
dsrl $10,$8,40
sb $11,2($5)
dsrl $11,$8,48
sb $1,3($5)
dsrl $1,$8,56
sb $2,4($5)
dsrl $2,$9,8
sb $10,5($5)
dsrl $10,$9,16
sb $11,6($5)
dsrl $11,$9,24
sb $1,7($5)
sb $9,8($5)
dsrl $1,$9,32
sb $2,9($5)
dsrl $2,$9,40
sb $10,10($5)
dsrl $10,$9,48
sb $11,11($5)
dsrl $11,$9,56
sb $1,12($5)
sb $2,13($5)
sb $10,14($5)
sb $11,15($5)
jr $31
.end poly1305_emit
.rdata
.asciiz "Poly1305 for MIPS64, CRYPTOGAMS by <appro@openssl.org>"
.align 2

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff