Fix asm format for MC68020

This commit is contained in:
Manuel Pégourié-Gonnard 2014-01-10 15:30:23 +01:00 committed by Paul Bakker
parent c6f563ce4c
commit 4239c03358

View File

@ -207,69 +207,81 @@
#if defined(__mc68020__) || defined(__mcpu32__) #if defined(__mc68020__) || defined(__mcpu32__)
#define MULADDC_INIT \ #define MULADDC_INIT \
asm( "movl %0, %%a2 " :: "m" (s)); \ asm( \
asm( "movl %0, %%a3 " :: "m" (d)); \ " \
asm( "movl %0, %%d3 " :: "m" (c)); \ movl %3, %%a2; \
asm( "movl %0, %%d2 " :: "m" (b)); \ movl %4, %%a3; \
asm( "moveq #0, %d0 " ); movl %5, %%d3; \
movl %6, %%d2; \
moveq #0, %%d0; \
"
#define MULADDC_CORE \ #define MULADDC_CORE \
asm( "movel %a2@+, %d1 " ); \ " \
asm( "mulul %d2, %d4:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addl %d3, %d1 " ); \ mulul %%d2, %%d4:%%d1; \
asm( "addxl %d0, %d4 " ); \ addl %%d3, %%d1; \
asm( "moveq #0, %d3 " ); \ addxl %%d0, %%d4; \
asm( "addl %d1, %a3@+ " ); \ moveq #0, %%d3; \
asm( "addxl %d4, %d3 " ); addl %%d1, %%a3@+; \
addxl %%d4, %%d3; \
"
#define MULADDC_STOP \ #define MULADDC_STOP \
asm( "movl %%d3, %0 " : "=m" (c)); \ " \
asm( "movl %%a3, %0 " : "=m" (d)); \ movl %%d3, %0; \
asm( "movl %%a2, %0 " : "=m" (s) :: \ movl %%a3, %1; \
"d0", "d1", "d2", "d3", "d4", "a2", "a3" ); movl %%a2, %2; \
" \
: "=m" (c), "=m" (d), "=m" (s) \
: "m" (s), "m" (d), "m" (c), "m" (b) \
: "d0", "d1", "d2", "d3", "d4", "a2", "a3" \
);
#define MULADDC_HUIT \ #define MULADDC_HUIT \
asm( "movel %a2@+, %d1 " ); \ " \
asm( "mulul %d2, %d4:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d3, %d1 " ); \ mulul %%d2, %%d4:%%d1; \
asm( "addxl %d0, %d4 " ); \ addxl %%d3, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d4; \
asm( "movel %a2@+, %d1 " ); \ addl %%d1, %%a3@+; \
asm( "mulul %d2, %d3:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d4, %d1 " ); \ mulul %%d2, %%d3:%%d1; \
asm( "addxl %d0, %d3 " ); \ addxl %%d4, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d3; \
asm( "movel %a2@+, %d1 " ); \ addl %%d1, %%a3@+; \
asm( "mulul %d2, %d4:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d3, %d1 " ); \ mulul %%d2, %%d4:%%d1; \
asm( "addxl %d0, %d4 " ); \ addxl %%d3, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d4; \
asm( "movel %a2@+, %d1 " ); \ addl %%d1, %%a3@+; \
asm( "mulul %d2, %d3:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d4, %d1 " ); \ mulul %%d2, %%d3:%%d1; \
asm( "addxl %d0, %d3 " ); \ addxl %%d4, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d3; \
asm( "movel %a2@+, %d1 " ); \ addl %%d1, %%a3@+; \
asm( "mulul %d2, %d4:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d3, %d1 " ); \ mulul %%d2, %%d4:%%d1; \
asm( "addxl %d0, %d4 " ); \ addxl %%d3, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d4; \
asm( "movel %a2@+, %d1 " ); \ addl %%d1, %%a3@+; \
asm( "mulul %d2, %d3:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d4, %d1 " ); \ mulul %%d2, %%d3:%%d1; \
asm( "addxl %d0, %d3 " ); \ addxl %%d4, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d3; \
asm( "movel %a2@+, %d1 " ); \ addl %%d1, %%a3@+; \
asm( "mulul %d2, %d4:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d3, %d1 " ); \ mulul %%d2, %%d4:%%d1; \
asm( "addxl %d0, %d4 " ); \ addxl %%d3, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d4; \
asm( "movel %a2@+, %d1 " ); \ addl %%d1, %%a3@+; \
asm( "mulul %d2, %d3:%d1 " ); \ movel %%a2@+, %%d1; \
asm( "addxl %d4, %d1 " ); \ mulul %%d2, %%d3:%%d1; \
asm( "addxl %d0, %d3 " ); \ addxl %%d4, %%d1; \
asm( "addl %d1, %a3@+ " ); \ addxl %%d0, %%d3; \
asm( "addxl %d0, %d3 " ); addl %%d1, %%a3@+; \
addxl %%d0, %%d3; \
"
#endif /* MC68000 */ #endif /* MC68000 */