Fix asm format for tricore

This commit is contained in:
Manuel Pégourié-Gonnard 2014-01-10 15:47:50 +01:00
parent 1753e2f0a2
commit 3f687ade1d

View File

@ -595,27 +595,37 @@
#if defined(__tricore__) #if defined(__tricore__)
#define MULADDC_INIT \ #define MULADDC_INIT \
asm( "ld.a %%a2, %0 " :: "m" (s)); \ asm( \
asm( "ld.a %%a3, %0 " :: "m" (d)); \ " \
asm( "ld.w %%d4, %0 " :: "m" (c)); \ ld.a %%a2, %3; \
asm( "ld.w %%d1, %0 " :: "m" (b)); \ ld.a %%a3, %4; \
asm( "xor %d5, %d5 " ); ld.w %%d4, %5; \
ld.w %%d1, %6; \
xor %%d5, %%d5; \
"
#define MULADDC_CORE \ #define MULADDC_CORE \
asm( "ld.w %d0, [%a2+] " ); \ " \
asm( "madd.u %e2, %e4, %d0, %d1 " ); \ ld.w %%d0, [%%a2+]; \
asm( "ld.w %d0, [%a3] " ); \ madd.u %%e2, %%e4, %%d0, %%d1; \
asm( "addx %d2, %d2, %d0 " ); \ ld.w %%d0, [%%a3]; \
asm( "addc %d3, %d3, 0 " ); \ addx %%d2, %%d2, %%d0; \
asm( "mov %d4, %d3 " ); \ addc %%d3, %%d3, 0; \
asm( "st.w [%a3+], %d2 " ); mov %%d4, %%d3; \
st.w [%%a3+], %%d2; \
"
#define MULADDC_STOP \ #define MULADDC_STOP \
asm( "st.w %0, %%d4 " : "=m" (c)); \ " \
asm( "st.a %0, %%a3 " : "=m" (d)); \ st.w %0, %%d4; \
asm( "st.a %0, %%a2 " : "=m" (s) :: \ st.a %1, %%a3; \
"d0", "d1", "e2", "d4", "a2", "a3" ); st.a %2, %%a2; \
" \
: "=m" (c), "=m" (d), "=m" (s) \
: "m" (s), "m" (d), "m" (c), "m" (b) \
: "d0", "d1", "e2", "d4", "a2", "a3" \
);
#endif /* TriCore */ #endif /* TriCore */