| ▲ | Krssst a day ago | |
Sorry, somewhat of a tangent but regarding: > The %0 and %1 are positional references into a list you have to count by hand. You can name your operands in gcc inline assembly. https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Output-... Look for "asmSymbolicName". On a phone so not checking if it builds, but something like `asm("add %[my_out], %[my_in], #3":[my_out]"=r"(outvar):[my_in]"r"(invar):);`. | ||
| ▲ | gingerBill a day ago | parent [-] | |
The equivalent Odin syntax looks like this: add_three :: asm(my_in: u64) -> (my_out: u64) { add my_out, my_in, 3 } out_var = add_three(in_var) Which is already infinitely more readable and requires no parochial sigils nor the arcane clobbering syntax. | ||