| Author: | Wojciech Muła |
|---|---|
| Added on: | 2008-06-07 |
asm(
"..."
: "+a" (var)
);
This won't work, GCC complains:
asm(
"..."
: /* no output */
: "a" (var)
: "eax"
);
We can declare a temporary variable, and treat it as read-write:
int tmp_var = var;
asm(
"..."
: "+a" (tmp_var)
);
If there are more registers, or var shouldn't be changed, then we can declare a common dummy variable:
int dummy __attribute__((unused));
asm(
"..."
: "=a" (dummy),
"=b" (dummy),
"=c" (dummy)
: "a" (var_or_value1),
"b" (var_or_value2),
"c" (var_or_value2)
);