mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-08-08 06:03:47 +08:00
add sm2
This commit is contained in:
@@ -9,49 +9,49 @@
|
|||||||
int muldiv(a,b,c,m,rp)
|
int muldiv(a,b,c,m,rp)
|
||||||
int a,b,c,m,*rp;
|
int a,b,c,m,*rp;
|
||||||
{
|
{
|
||||||
ASM ("movl %eax,a");
|
ASM ("movl a,%eax");
|
||||||
ASM ("mull b");
|
ASM ("mull b");
|
||||||
ASM ("addl %eax,c");
|
ASM ("addl c,%eax");
|
||||||
ASM ("adcl %edx,$0h");
|
ASM ("adcl $0h,%edx");
|
||||||
ASM ("divl m");
|
ASM ("divl m");
|
||||||
ASM ("movl %ebx,rp");
|
ASM ("movl rp,%ebx");
|
||||||
ASM ("movl (%ebx),%edx");
|
ASM ("movl %edx,(%ebx)");
|
||||||
}
|
}
|
||||||
|
|
||||||
int muldvm(a,c,m,rp)
|
int muldvm(a,c,m,rp)
|
||||||
int a,c,m,*rp;
|
int a,c,m,*rp;
|
||||||
{
|
{
|
||||||
ASM ("movl %edx,a");
|
ASM ("movl a,%edx");
|
||||||
ASM ("movl %eax,c");
|
ASM ("movl c,%eax");
|
||||||
ASM ("divl m");
|
ASM ("divl m");
|
||||||
ASM ("movl %ebx,rp");
|
ASM ("movl rp,%ebx");
|
||||||
ASM ("movl (%ebx),%edx");
|
ASM ("movl %edx,(%ebx)");
|
||||||
}
|
}
|
||||||
|
|
||||||
int muldvd(a,b,c,rp)
|
int muldvd(a,b,c,rp)
|
||||||
int a,b,c,*rp;
|
int a,b,c,*rp;
|
||||||
{
|
{
|
||||||
ASM ("movl %eax,a");
|
ASM ("movl a,%eax");
|
||||||
ASM ("mull b");
|
ASM ("mull b");
|
||||||
ASM ("addl %eax,c");
|
ASM ("addl c,%eax");
|
||||||
ASM ("adcl %edx,$0h");
|
ASM ("adcl $0h,%edx");
|
||||||
ASM ("movl %ebx,rp");
|
ASM ("movl rp,%ebx");
|
||||||
ASM ("movl (%ebx),%eax");
|
ASM ("movl %eax,(%ebx)");
|
||||||
ASM ("movl %eax,%edx");
|
ASM ("movl %edx,%eax");
|
||||||
}
|
}
|
||||||
|
|
||||||
void muldvd2(a,b,c,rp)
|
void muldvd2(a,b,c,rp)
|
||||||
int a,b,*c,*rp;
|
int a,b,*c,*rp;
|
||||||
{
|
{
|
||||||
ASM ("movl %eax,a");
|
ASM ("movl a,%eax");
|
||||||
ASM ("mull b");
|
ASM ("mull b");
|
||||||
ASM ("movl %ebx,c");
|
ASM ("movl c,%ebx");
|
||||||
ASM ("addl %eax,(%ebx)");
|
ASM ("addl (%ebx),%eax");
|
||||||
ASM ("adcl %edx,$0h");
|
ASM ("adcl $0h,%edx");
|
||||||
ASM ("movl %esi,rp");
|
ASM ("movl rp,%esi");
|
||||||
ASM ("addl %eax,(esi)");
|
ASM ("addl (%esi),%eax");
|
||||||
ASM ("adcl %edx,$0h");
|
ASM ("adcl $0h,%edx");
|
||||||
ASM ("movl (%esi),%eax");
|
ASM ("movl %eax,(%esi)");
|
||||||
ASM ("movl (%ebx),%edx");
|
ASM ("movl %edx,(%ebx)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user