9#ifndef BOTAN_MP_ASM_H__
10#define BOTAN_MP_ASM_H__
12#include <botan/mp_types.h>
14#if (BOTAN_MP_WORD_BITS != 32)
15 #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32
25#define ASM(x) x "\n\t"
35 ASM(
"adcl $0,%[carry]")
37 : [a]
"=a"(a), [b]
"=rm"(b), [carry]
"=&d"(*c)
38 :
"0"(a),
"1"(b), [c]
"g"(*c) :
"cc");
46inline word
word_madd3(word a, word b, word c, word* d)
52 ASM(
"adcl $0,%[carry]")
55 ASM(
"adcl $0,%[carry]")
57 : [a]
"=a"(a), [b]
"=rm"(b), [carry]
"=&d"(*d)
58 :
"0"(a),
"1"(b), [c]
"g"(c), [d]
"g"(*d) :
"cc");
word word_madd3(word a, word b, word c, word *d)
word word_madd2(word a, word b, word *c)