projects
/
experiments
/
inline-assembly.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add an inline asm implementation of sum() for x86 CPUs
[experiments/inline-assembly.git]
/
inline-asm-sum.c
diff --git
a/inline-asm-sum.c
b/inline-asm-sum.c
index
4f9c2f0
..
a578ee7
100644
(file)
--- a/
inline-asm-sum.c
+++ b/
inline-asm-sum.c
@@
-21,7
+21,16
@@
static int sum(int a, int b)
{
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;
return a + b;
+#endif
}
int main(void)
}
int main(void)