#include <botan/internal/mp_asm.h>
Go to the source code of this file.
|  | 
| void | Botan::word3_muladd (word *w2, word *w1, word *w0, word a, word b) | 
|  | 
| void | Botan::word3_muladd_2 (word *w2, word *w1, word *w0, word a, word b) | 
|  | 
| word | Botan::word8_add2 (word x[8], const word y[8], word carry) | 
|  | 
| word | Botan::word8_add3 (word z[8], const word x[8], const word y[8], word carry) | 
|  | 
| word | Botan::word8_linmul2 (word x[8], word y, word carry) | 
|  | 
| word | Botan::word8_linmul3 (word z[8], const word x[8], word y, word carry) | 
|  | 
| word | Botan::word8_madd3 (word z[8], const word x[8], word y, word carry) | 
|  | 
| word | Botan::word8_sub2 (word x[8], const word y[8], word carry) | 
|  | 
| word | Botan::word8_sub2_rev (word x[8], const word y[8], word carry) | 
|  | 
| word | Botan::word8_sub3 (word z[8], const word x[8], const word y[8], word carry) | 
|  | 
| word | Botan::word_add (word x, word y, word *carry) | 
|  | 
| word | Botan::word_sub (word x, word y, word *carry) | 
|  | 
◆ ADD_OR_SUBTRACT
      
        
          | #define ADD_OR_SUBTRACT | ( |  | CORE_CODE | ) |  | 
      
 
Value:        ASM(
"sbbq %[carry],%[carry]")  \
         ASM("negq %[carry]")
Definition at line 62 of file mp_asmi.h.
 
 
◆ ADDSUB2_OP
      
        
          | #define ADDSUB2_OP | ( |  | OPERATION, | 
        
          |  |  |  | INDEX | 
        
          |  | ) |  |  | 
      
 
Value:ASM(
"movq 8*" #INDEX 
"(%[y]), %[carry]")         \
         ASM(OPERATION " %[carry], 8*" #INDEX "(%[x])")   \
Definition at line 25 of file mp_asmi.h.
 
 
◆ ADDSUB3_OP
      
        
          | #define ADDSUB3_OP | ( |  | OPERATION, | 
        
          |  |  |  | INDEX | 
        
          |  | ) |  |  | 
      
 
Value:ASM(
"movq 8*" #INDEX 
"(%[x]), %[carry]")         \
         ASM(OPERATION " 8*" #INDEX "(%[y]), %[carry]")   \
        ASM("movq %[carry], 8*" #INDEX "(%[z])")         \
Definition at line 29 of file mp_asmi.h.
 
 
◆ ASM
      
        
          | #define ASM | ( |  | x | ) | x "\n\t" | 
      
 
 
◆ DO_8_TIMES
      
        
          | #define DO_8_TIMES | ( |  | MACRO, | 
        
          |  |  |  | ARG | 
        
          |  | ) |  |  | 
      
 
 
◆ LINMUL_OP
      
        
          | #define LINMUL_OP | ( |  | WRITE_TO, | 
        
          |  |  |  | INDEX | 
        
          |  | ) |  |  | 
      
 
Value:ASM(
"movq 8*" #INDEX 
"(%[x]),%%rax")             \
         ASM("mulq %[y]")                                 \
        ASM("addq %[carry],%%rax")                       \
        ASM("adcq $0,%%rdx")                             \
        ASM("movq %%rdx,%[carry]")                       \
        ASM("movq %%rax, 8*" #INDEX "(%[" WRITE_TO "])")
Definition at line 34 of file mp_asmi.h.
 
 
◆ MULADD_OP
      
        
          | #define MULADD_OP | ( |  | IGNORED, | 
        
          |  |  |  | INDEX | 
        
          |  | ) |  |  | 
      
 
Value:ASM(
"movq 8*" #INDEX 
"(%[x]),%%rax")             \
         ASM("mulq %[y]")                                 \
        ASM("addq %[carry],%%rax")                       \
        ASM("adcq $0,%%rdx")                             \
        ASM("addq 8*" #INDEX "(%[z]),%%rax")             \
        ASM("adcq $0,%%rdx")                             \
        ASM("movq %%rdx,%[carry]")                       \
        ASM("movq %%rax, 8*" #INDEX " (%[z])")
Definition at line 42 of file mp_asmi.h.