From f9852578fbd1aa0dff434dda1fd1d4d17b1645fc Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Tue, 5 Nov 2013 17:57:56 +0100 Subject: [PATCH] Add an inline asm implementation of sum() for x86 CPUs --- inline-asm-sum.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/inline-asm-sum.c b/inline-asm-sum.c index 4f9c2f0..a578ee7 100644 --- a/inline-asm-sum.c +++ b/inline-asm-sum.c @@ -21,7 +21,16 @@ static int sum(int a, int b) { +#if defined(__i386__) || defined(__x86_64__) + int ret; + __asm__("addl %2, %1\n\t" + : "=a"(ret) /* %0 bound to %eax */ + : "a"(a), "r"(b) /* %1 is 'a' bound to %eax, %2 is 'b' */ + ); + return ret; +#else return a + b; +#endif } int main(void) -- 2.1.4