r m/r + setc/xor

This commit is contained in:
Nikolay Volf 2016-02-24 21:36:31 +03:00
parent dd8652dbf4
commit 476bb85d41

View File

@ -91,13 +91,13 @@ macro_rules! overflowing_add_u256_asm {
unsafe {
asm!("
xor %al, %al
adc $9, %r8
adc $10, %r9
adc $11, %r10
adc $12, %r11
adc $$0, %al"
: "={r8}"(result[0]), "={r9}"(result[1]), "={r10}"(result[2]), "={r11}"(result[3]), "={al}"(overflow)
: "{r8}"(self_t[0]), "{r9}"(self_t[1]), "{r10}"(self_t[2]), "{r11}"(self_t[3]), "m"(other_t[0]), "m"(other_t[1]), "m"(other_t[2]), "m"(other_t[3])
adc $9, $0
adc $10, $1
adc $11, $2
adc $12, $3
adc $$0, %al"
: "=r"(result[0]), "=r"(result[1]), "=r"(result[2]), "=r"(result[3]), "={al}"(overflow)
: "0"(self_t[0]), "1"(self_t[1]), "2"(self_t[2]), "3"(self_t[3]), "mr"(other_t[0]), "mr"(other_t[1]), "mr"(other_t[2]), "mr"(other_t[3])
:
:
);