All of lore.kernel.org
 help / color / mirror / Atom feed
* [parisc-linux] some whitespace rework and attempt to beautify inline asm stuff?
@ 2006-04-11  9:37 Joel Soete
  2006-04-16 20:14 ` [parisc-linux] Does it lakes some cloberred r1 in __put_kernel_asm() 64bit? Joel Soete
  2006-04-16 20:37 ` [parisc-linux] more whitespace rework and attempt to beautify inline asm stuff? Joel Soete
  0 siblings, 2 replies; 5+ messages in thread
From: Joel Soete @ 2006-04-11  9:37 UTC (permalink / raw)
  To: Parisc List

[-- Attachment #1: Type: text/plain, Size: 13963 bytes --]

Hello all,

Reading some .s output like memcpy, I was worry that some labels was not in
the column as e.g.:
       pmc_store_exc:
[...]
       1:      ldw 0(%sr1,%r19), %r22
[...]

or otc code in first column:
[...]
shrpw %r3, %r1, %sar, %r28

here I attache a patch
--- linux-2.6.17-rc1-pa1/arch/parisc/lib/memcpy.c.Orig  2006-04-10
07:24:31.000000000 +0000
+++ linux-2.6.17-rc1-pa1/arch/parisc/lib/memcpy.c       2006-04-10
15:05:38.000000000 +0000
@@ -79,20 +79,24 @@
 #define get_user_space() (segment_eq(get_fs(), KERNEL_DS) ? 0 : mfsp(3))
 #define get_kernel_space() (0)

-#define MERGE(w0, sh_1, w1, sh_2)  ({                                  \
+#define MERGE(w0, sh_1, w1, sh_2)      ({                              \
        unsigned int _r;                                                \
-       asm volatile (                                                  \
-       "mtsar %3\n"                                                    \
-       "shrpw %1, %2, %%sar, %0\n"                                     \
-       : "=r"(_r)                                                      \
-       : "r"(w0), "r"(w1), "r"(sh_2)                                   \
+       __asm__ __volatile__ ("\n"                                      \
+       "       mtsar           %3\n"                                   \
+       "       shrpw           %1, %2,%%sar, %0"                       \
+               : "=r"(_r)                                              \
+               : "r"(w0), "r"(w1), "r"(sh_2)                           \
        );                                                              \
        _r;                                                             \
 })
 #define THRESHOLD      16

 #ifdef DEBUG_MEMCPY
-#define DPRINTF(fmt, args...) do { printk(KERN_DEBUG "%s:%d:%s ", __FILE__,
__LINE__, __FUNCTION__ ); printk(KERN_DEBUG fmt, ##args
 ); } while (0)
+#define DPRINTF(fmt, args...) do {                                     \
+       printk(KERN_DEBUG "%s:%d:%s ",                                  \
+               __FILE__, __LINE__, __FUNCTION__ );                     \
+       printk(KERN_DEBUG fmt, ##args );                                \
+} while (0)
 #else
 #define DPRINTF(fmt, args...)
 #endif
@@ -103,69 +107,81 @@
 #define EXC_WORD ".dword"
 #endif

-#define def_load_ai_insn(_insn,_sz,_tt,_s,_a,_t,_e)    \
-       __asm__ __volatile__ (                          \
-       "1:\t" #_insn ",ma " #_sz "(" _s ",%1), %0\n"   \
-       "\t.section __ex_table,\"aw\"\n"                \
-       "\t" EXC_WORD "\t1b\n"                          \
-       "\t" EXC_WORD "\t" #_e "\n"                     \
-       "\t.previous\n"                                 \
-       : _tt(_t), "+r"(_a)                             \
-       :                                               \
-       : "r8")
-
-#define def_store_ai_insn(_insn,_sz,_tt,_s,_a,_t,_e)   \
-       __asm__ __volatile__ (                          \
-       "1:\t" #_insn ",ma %1, " #_sz "(" _s ",%0)\n"   \
-       "\t.section __ex_table,\"aw\"\n"                \
-       "\t" EXC_WORD "\t1b\n"                          \
-       "\t" EXC_WORD "\t" #_e "\n"                     \
-       "\t.previous\n"                                 \
-       : "+r"(_a)                                      \
-       : _tt(_t)                                       \
-       : "r8")
-
-#define ldbma(_s, _a, _t, _e) def_load_ai_insn(ldbs,1,"=r",_s,_a,_t,_e)
-#define stbma(_s, _t, _a, _e) def_store_ai_insn(stbs,1,"r",_s,_a,_t,_e)
-#define ldwma(_s, _a, _t, _e) def_load_ai_insn(ldw,4,"=r",_s,_a,_t,_e)
-#define stwma(_s, _t, _a, _e) def_store_ai_insn(stw,4,"r",_s,_a,_t,_e)
-#define flddma(_s, _a, _t, _e) def_load_ai_insn(fldd,8,"=f",_s,_a,_t,_e)
-#define fstdma(_s, _t, _a, _e) def_store_ai_insn(fstd,8,"f",_s,_a,_t,_e)
-
-#define def_load_insn(_insn,_tt,_s,_o,_a,_t,_e)        \
-       __asm__ __volatile__ (                          \
-       "1:\t" #_insn " " #_o "(" _s ",%1), %0\n"       \
-       "\t.section __ex_table,\"aw\"\n"                \
-       "\t" EXC_WORD "\t1b\n"                          \
-       "\t" EXC_WORD "\t" #_e "\n"                     \
-       "\t.previous\n"                                 \
-       : _tt(_t)                                       \
-       : "r"(_a)                                       \
-       : "r8")
-
-#define def_store_insn(_insn,_tt,_s,_t,_o,_a,_e)       \
-       __asm__ __volatile__ (                          \
-       "1:\t" #_insn " %0, " #_o "(" _s ",%1)\n"       \
-       "\t.section __ex_table,\"aw\"\n"                \
-       "\t" EXC_WORD "\t1b\n"                          \
-       "\t" EXC_WORD "\t" #_e "\n"                     \
-       "\t.previous\n"                                 \
-       :                                               \
-       : _tt(_t), "r"(_a)                              \
-       : "r8")
+#define def_load_ai_insn(_insn, _sz, _tt, _s, _a, _t, _e)              \
+       __asm__ __volatile__ ("\n"                                      \
+       "1:     " #_insn ",ma           " #_sz "(" _s ", %1), %0\n"     \
+       "       .section __ex_table,\"aw\"\n"                           \
+       "       " EXC_WORD "    1b\n"                                   \
+       "       " EXC_WORD "    " #_e "\n"                              \
+       "       .previous"                                              \
+               : _tt(_t), "+r"(_a)                                     \
+               :                                                       \
+               : "r8"                                                  \
+       )
+
+#define def_store_ai_insn(_insn, _sz, _tt, _s, _a, _t, _e)             \
+       __asm__ __volatile__ ("\n"                                      \
+       "1:     " #_insn ",ma           %1, " #_sz "(" _s ", %0)\n"     \
+       "       .section __ex_table,\"aw\"\n"                           \
+       "       " EXC_WORD "    1b\n"                                   \
+       "       " EXC_WORD "    " #_e "\n"                              \
+       "       .previous"                                              \
+               : "+r"(_a)                                              \
+               : _tt(_t)                                               \
+               : "r8"                                                  \
+       )
+
+#define ldbma(_s, _a, _t, _e) def_load_ai_insn(ldbs, 1, "=r", _s, _a, _t, _e)
+#define stbma(_s, _t, _a, _e) def_store_ai_insn(stbs, 1, "r", _s, _a, _t, _e)
+#define ldwma(_s, _a, _t, _e) def_load_ai_insn(ldw, 4, "=r", _s, _a, _t, _e)
+#define stwma(_s, _t, _a, _e) def_store_ai_insn(stw, 4, "r", _s, _a, _t, _e)
+#define flddma(_s, _a, _t, _e) def_load_ai_insn(fldd, 8, "=f", _s, _a, _t, _e)
+#define fstdma(_s, _t, _a, _e) def_store_ai_insn(fstd, 8, "f", _s, _a, _t, _e)
+
+#define def_load_insn(_insn, _tt, _s, _o, _a, _t, _e)                  \
+       __asm__ __volatile__ ("\n"                                      \
+       "1:     " #_insn "              " #_o "(" _s ", %1), %0\n"      \
+       "       .section __ex_table,\"aw\"\n"                           \
+       "       " EXC_WORD "    1b\n"                                   \
+       "       " EXC_WORD "    " #_e "\n"                              \
+       "       .previous"                                              \
+               : _tt(_t)                                               \
+               : "r"(_a)                                               \
+               : "r8"                                                  \
+       )
+
+#define def_store_insn(_insn, _tt, _s, _t, _o, _a, _e)                 \
+       __asm__ __volatile__ ("\n"                                      \
+       "1:     " #_insn "              %0, " #_o "(" _s ", %1)\n"      \
+       "       .section __ex_table,\"aw\"\n"                           \
+       "       " EXC_WORD "    1b\n"                                   \
+       "       " EXC_WORD "    " #_e "\n"                              \
+       "       .previous"                                              \
+               :                                                       \
+               : _tt(_t), "r"(_a)                                      \
+               : "r8"                                                  \
+       )

-#define ldw(_s,_o,_a,_t,_e)    def_load_insn(ldw,"=r",_s,_o,_a,_t,_e)
-#define stw(_s,_t,_o,_a,_e)    def_store_insn(stw,"r",_s,_t,_o,_a,_e)
+#define ldw(_s, _o, _a, _t, _e)        def_load_insn(ldw, "=r", _s, _o, _a,
_t, _e)
+#define stw(_s, _t, _o, _a, _e)        def_store_insn(stw, "r", _s, _t, _o,
_a, _e)

 #ifdef  CONFIG_PREFETCH
 extern inline void prefetch_src(const void *addr)
 {
-       __asm__("ldw 0(" s_space ",%0), %%r0" : : "r" (addr));
+       __asm__ ("\n"
+       "       ldw             0(" s_space ", %0), %%r0"
+               :
+               : "r" (addr)
+       );
 }

 extern inline void prefetch_dst(const void *addr)
 {
-       __asm__("ldd 0(" d_space ",%0), %%r0" : : "r" (addr));
+       __asm__ ("\n"
+       "       ldd             0(" d_space ", %0), %%r0"
+               :
+               : "r" (addr)
+       );
 }
 #else
 #define prefetch_src(addr)
@@ -278,14 +294,14 @@
        return 0;

 handle_load_error:
-       __asm__ __volatile__ ("cda_ldw_exc:\n");
+       __asm__ __volatile__ ("\ncda_ldw_exc:\n");
        d = &__get_cpu_var(exception_data);
        DPRINTF("cda_ldw_exc: o_len=%lu fault_addr=%lu o_src=%lu ret=%lu\n",
                o_len, d->fault_addr, o_src, o_len - d->fault_addr + o_src);
        return o_len * 4 - d->fault_addr + o_src;

 handle_store_error:
-       __asm__ __volatile__ ("cda_stw_exc:\n");
+       __asm__ __volatile__ ("\ncda_stw_exc:\n");
        d = &__get_cpu_var(exception_data);
        DPRINTF("cda_stw_exc: o_len=%lu fault_addr=%lu o_dst=%lu ret=%lu\n",
                o_len, d->fault_addr, o_dst, o_len - d->fault_addr + o_dst);
@@ -374,7 +390,7 @@

 word_copy:
        while (len >= 8*sizeof(unsigned int)) {
-               register unsigned int r1,r2,r3,r4,r5,r6,r7,r8;
+               register unsigned int r1, r2, r3, r4, r5, r6, r7, r8;
                /* prefetch_src((char *)pws + L1_CACHE_BYTES); */
                ldwma(s_space, pws, r1, pmc_load_exc);
                ldwma(s_space, pws, r2, pmc_load_exc);
@@ -397,7 +413,7 @@
        }

        while (len >= 4*sizeof(unsigned int)) {
-               register unsigned int r1,r2,r3,r4;
+               register unsigned int r1, r2, r3, r4;
                ldwma(s_space, pws, r1, pmc_load_exc);
                ldwma(s_space, pws, r2, pmc_load_exc);
                ldwma(s_space, pws, r3, pmc_load_exc);
@@ -472,14 +488,14 @@
        goto byte_copy;

 handle_load_error:
-       __asm__ __volatile__ ("pmc_load_exc:\n");
+       __asm__ __volatile__ ("\npmc_load_exc:\n");
        d = &__get_cpu_var(exception_data);
        DPRINTF("pmc_load_exc: o_len=%lu fault_addr=%lu o_src=%lu ret=%lu\n",
                o_len, d->fault_addr, o_src, o_len - d->fault_addr + o_src);
        return o_len - d->fault_addr + o_src;

 handle_store_error:
-       __asm__ __volatile__ ("pmc_store_exc:\n");
+       __asm__ __volatile__ ("\npmc_store_exc:\n");
        d = &__get_cpu_var(exception_data);
        DPRINTF("pmc_store_exc: o_len=%lu fault_addr=%lu o_dst=%lu ret=%lu\n",
                o_len, d->fault_addr, o_dst, o_len - d->fault_addr + o_dst);
====<>====

 which seems to make the drill:
-       pmc_store_exc:
+
+pmc_store_exc:

 #NO_APP
        addil LR'per_cpu__exception_data-$global$,%r27
@@ -450,37 +451,37 @@
        ldi 0,%r1
 .L38:
 #APP
-       1:      ldw 0(%sr1,%r19), %r22
+
+1:     ldw             0(%sr1, %r19), %r22
        .section __ex_table,"aw"
        .word   1b
        .word   cda_ldw_exc
        .previous
-
-       mtsar %r29
-shrpw %r3, %r1, %sar, %r28
-
-       1:      stw %r28, 0(%sr2,%r20)
+
+       mtsar           %r29
+       shrpw           %r3, %r1,%sar, %r28
+
+1:     stw             %r28, 0(%sr2, %r20)
[...]

Not sure it was usefull but that made me attemptimg to use a same asm bloc
template.

BTW, I tried to apply the same template to some uaccess.h and figure out that
this hunk din't mentioned that "r1" was cloberred (iirc in fixup text) while
the 32bit one did:

#ifdef __LP64__
#define __put_kernel_asm(stx,x,ptr)                         \
       __asm__ __volatile__ (                              \
               "\n1:\t" stx "\t%2,0(%1)\n"                 \
               "\t.section __ex_table,\"aw\"\n"            \
               "\t.dword\t1b,fixup_put_user_skip_1\n"      \
               "\t.previous"                               \
               : "=r"(__pu_err)                            \
               : "r"(ptr), "r"(x), "0"(__pu_err))
[snip]
#else
#define __put_kernel_asm(stx,x,ptr)                         \
       __asm__ __volatile__ (                              \
               "\n1:\t" stx "\t%2,0(%1)\n"                 \
               "\t.section __ex_table,\"aw\"\n"            \
                "\t.word\t1b,fixup_put_user_skip_1\n"      \
                "\t.previous"                              \
               : "=r"(__pu_err)                            \
               : "r"(ptr), "r"(x), "0"(__pu_err)           \
               : "r1")
[snip]

mmm, doen't seems to change anything (I just check sys_parisc32.s) but may be
else where?

Thanks,
    Joel




---------------------------------------------------------------
A free anti-spam and anti-virus filter on all Scarlet mailboxes
More info on http://www.scarlet.be/

[-- Attachment #2: memcpy.c.beautify.diff --]
[-- Type: text/plain, Size: 7563 bytes --]

--- linux-2.6.17-rc1-pa1/arch/parisc/lib/memcpy.c.Orig	2006-04-10 07:24:31.000000000 +0000
+++ linux-2.6.17-rc1-pa1/arch/parisc/lib/memcpy.c	2006-04-10 15:05:38.000000000 +0000
@@ -79,20 +79,24 @@
 #define get_user_space() (segment_eq(get_fs(), KERNEL_DS) ? 0 : mfsp(3))
 #define get_kernel_space() (0)
 
-#define MERGE(w0, sh_1, w1, sh_2)  ({					\
+#define MERGE(w0, sh_1, w1, sh_2)	({				\
 	unsigned int _r;						\
-	asm volatile (							\
-	"mtsar %3\n"							\
-	"shrpw %1, %2, %%sar, %0\n"					\
-	: "=r"(_r)							\
-	: "r"(w0), "r"(w1), "r"(sh_2)					\
+	__asm__ __volatile__ ("\n"					\
+	"	mtsar		%3\n"					\
+	"	shrpw		%1, %2,%%sar, %0"			\
+		: "=r"(_r)						\
+		: "r"(w0), "r"(w1), "r"(sh_2)				\
 	);								\
 	_r;								\
 })
 #define THRESHOLD	16
 
 #ifdef DEBUG_MEMCPY
-#define DPRINTF(fmt, args...) do { printk(KERN_DEBUG "%s:%d:%s ", __FILE__, __LINE__, __FUNCTION__ ); printk(KERN_DEBUG fmt, ##args ); } while (0)
+#define DPRINTF(fmt, args...) do {					\
+	printk(KERN_DEBUG "%s:%d:%s ",					\
+		__FILE__, __LINE__, __FUNCTION__ );			\
+	printk(KERN_DEBUG fmt, ##args );				\
+} while (0)
 #else
 #define DPRINTF(fmt, args...)
 #endif
@@ -103,69 +107,81 @@
 #define EXC_WORD ".dword"
 #endif
 
-#define def_load_ai_insn(_insn,_sz,_tt,_s,_a,_t,_e)	\
-	__asm__ __volatile__ (				\
-	"1:\t" #_insn ",ma " #_sz "(" _s ",%1), %0\n" 	\
-	"\t.section __ex_table,\"aw\"\n"		\
-	"\t" EXC_WORD "\t1b\n"				\
-	"\t" EXC_WORD "\t" #_e "\n"			\
-	"\t.previous\n"					\
-	: _tt(_t), "+r"(_a)				\
-	: 						\
-	: "r8")
-
-#define def_store_ai_insn(_insn,_sz,_tt,_s,_a,_t,_e) 	\
-	__asm__ __volatile__ (				\
-	"1:\t" #_insn ",ma %1, " #_sz "(" _s ",%0)\n" 	\
-	"\t.section __ex_table,\"aw\"\n"		\
-	"\t" EXC_WORD "\t1b\n"				\
-	"\t" EXC_WORD "\t" #_e "\n"			\
-	"\t.previous\n"					\
-	: "+r"(_a) 					\
-	: _tt(_t)					\
-	: "r8")
-
-#define ldbma(_s, _a, _t, _e) def_load_ai_insn(ldbs,1,"=r",_s,_a,_t,_e)
-#define stbma(_s, _t, _a, _e) def_store_ai_insn(stbs,1,"r",_s,_a,_t,_e)
-#define ldwma(_s, _a, _t, _e) def_load_ai_insn(ldw,4,"=r",_s,_a,_t,_e)
-#define stwma(_s, _t, _a, _e) def_store_ai_insn(stw,4,"r",_s,_a,_t,_e)
-#define flddma(_s, _a, _t, _e) def_load_ai_insn(fldd,8,"=f",_s,_a,_t,_e)
-#define fstdma(_s, _t, _a, _e) def_store_ai_insn(fstd,8,"f",_s,_a,_t,_e)
-
-#define def_load_insn(_insn,_tt,_s,_o,_a,_t,_e) 	\
-	__asm__ __volatile__ (				\
-	"1:\t" #_insn " " #_o "(" _s ",%1), %0\n"	\
-	"\t.section __ex_table,\"aw\"\n"		\
-	"\t" EXC_WORD "\t1b\n"				\
-	"\t" EXC_WORD "\t" #_e "\n"			\
-	"\t.previous\n"					\
-	: _tt(_t) 					\
-	: "r"(_a)					\
-	: "r8")
-
-#define def_store_insn(_insn,_tt,_s,_t,_o,_a,_e) 	\
-	__asm__ __volatile__ (				\
-	"1:\t" #_insn " %0, " #_o "(" _s ",%1)\n" 	\
-	"\t.section __ex_table,\"aw\"\n"		\
-	"\t" EXC_WORD "\t1b\n"				\
-	"\t" EXC_WORD "\t" #_e "\n"			\
-	"\t.previous\n"					\
-	: 						\
-	: _tt(_t), "r"(_a)				\
-	: "r8")
+#define def_load_ai_insn(_insn, _sz, _tt, _s, _a, _t, _e)		\
+	__asm__ __volatile__ ("\n"					\
+	"1:	" #_insn ",ma		" #_sz "(" _s ", %1), %0\n"	\
+	"	.section __ex_table,\"aw\"\n"				\
+	"	" EXC_WORD "	1b\n"					\
+	"	" EXC_WORD "	" #_e "\n"				\
+	"	.previous"						\
+		: _tt(_t), "+r"(_a)					\
+		: 							\
+		: "r8"							\
+	)
+
+#define def_store_ai_insn(_insn, _sz, _tt, _s, _a, _t, _e)		\
+	__asm__ __volatile__ ("\n"					\
+	"1:	" #_insn ",ma		%1, " #_sz "(" _s ", %0)\n" 	\
+	"	.section __ex_table,\"aw\"\n"				\
+	"	" EXC_WORD "	1b\n"					\
+	"	" EXC_WORD "	" #_e "\n"				\
+	"	.previous"						\
+		: "+r"(_a) 						\
+		: _tt(_t)						\
+		: "r8"							\
+	)
+
+#define ldbma(_s, _a, _t, _e) def_load_ai_insn(ldbs, 1, "=r", _s, _a, _t, _e)
+#define stbma(_s, _t, _a, _e) def_store_ai_insn(stbs, 1, "r", _s, _a, _t, _e)
+#define ldwma(_s, _a, _t, _e) def_load_ai_insn(ldw, 4, "=r", _s, _a, _t, _e)
+#define stwma(_s, _t, _a, _e) def_store_ai_insn(stw, 4, "r", _s, _a, _t, _e)
+#define flddma(_s, _a, _t, _e) def_load_ai_insn(fldd, 8, "=f", _s, _a, _t, _e)
+#define fstdma(_s, _t, _a, _e) def_store_ai_insn(fstd, 8, "f", _s, _a, _t, _e)
+
+#define def_load_insn(_insn, _tt, _s, _o, _a, _t, _e) 			\
+	__asm__ __volatile__ ("\n"					\
+	"1:	" #_insn "		" #_o "(" _s ", %1), %0\n"	\
+	"	.section __ex_table,\"aw\"\n"				\
+	"	" EXC_WORD "	1b\n"					\
+	"	" EXC_WORD "	" #_e "\n"				\
+	"	.previous"						\
+		: _tt(_t) 						\
+		: "r"(_a)						\
+		: "r8"							\
+	)
+
+#define def_store_insn(_insn, _tt, _s, _t, _o, _a, _e)			\
+	__asm__ __volatile__ ("\n"					\
+	"1:	" #_insn "		%0, " #_o "(" _s ", %1)\n"	\
+	"	.section __ex_table,\"aw\"\n"				\
+	"	" EXC_WORD "	1b\n"					\
+	"	" EXC_WORD "	" #_e "\n"				\
+	"	.previous"						\
+		: 							\
+		: _tt(_t), "r"(_a)					\
+		: "r8"							\
+	)
 
-#define ldw(_s,_o,_a,_t,_e)	def_load_insn(ldw,"=r",_s,_o,_a,_t,_e)
-#define stw(_s,_t,_o,_a,_e) 	def_store_insn(stw,"r",_s,_t,_o,_a,_e)
+#define ldw(_s, _o, _a, _t, _e)	def_load_insn(ldw, "=r", _s, _o, _a, _t, _e)
+#define stw(_s, _t, _o, _a, _e)	def_store_insn(stw, "r", _s, _t, _o, _a, _e)
 
 #ifdef  CONFIG_PREFETCH
 extern inline void prefetch_src(const void *addr)
 {
-	__asm__("ldw 0(" s_space ",%0), %%r0" : : "r" (addr));
+	__asm__ ("\n"
+	"	ldw		0(" s_space ", %0), %%r0"
+		:
+		: "r" (addr)
+	);
 }
 
 extern inline void prefetch_dst(const void *addr)
 {
-	__asm__("ldd 0(" d_space ",%0), %%r0" : : "r" (addr));
+	__asm__ ("\n"
+	"	ldd		0(" d_space ", %0), %%r0"
+		:
+		: "r" (addr)
+	);
 }
 #else
 #define prefetch_src(addr)
@@ -278,14 +294,14 @@
 	return 0;
 
 handle_load_error:
-	__asm__ __volatile__ ("cda_ldw_exc:\n");
+	__asm__ __volatile__ ("\ncda_ldw_exc:\n");
 	d = &__get_cpu_var(exception_data);
 	DPRINTF("cda_ldw_exc: o_len=%lu fault_addr=%lu o_src=%lu ret=%lu\n",
 		o_len, d->fault_addr, o_src, o_len - d->fault_addr + o_src);
 	return o_len * 4 - d->fault_addr + o_src;
 
 handle_store_error:
-	__asm__ __volatile__ ("cda_stw_exc:\n");
+	__asm__ __volatile__ ("\ncda_stw_exc:\n");
 	d = &__get_cpu_var(exception_data);
 	DPRINTF("cda_stw_exc: o_len=%lu fault_addr=%lu o_dst=%lu ret=%lu\n",
 		o_len, d->fault_addr, o_dst, o_len - d->fault_addr + o_dst);
@@ -374,7 +390,7 @@
 
 word_copy:
 	while (len >= 8*sizeof(unsigned int)) {
-		register unsigned int r1,r2,r3,r4,r5,r6,r7,r8;
+		register unsigned int r1, r2, r3, r4, r5, r6, r7, r8;
 		/* prefetch_src((char *)pws + L1_CACHE_BYTES); */
 		ldwma(s_space, pws, r1, pmc_load_exc);
 		ldwma(s_space, pws, r2, pmc_load_exc);
@@ -397,7 +413,7 @@
 	}
 
 	while (len >= 4*sizeof(unsigned int)) {
-		register unsigned int r1,r2,r3,r4;
+		register unsigned int r1, r2, r3, r4;
 		ldwma(s_space, pws, r1, pmc_load_exc);
 		ldwma(s_space, pws, r2, pmc_load_exc);
 		ldwma(s_space, pws, r3, pmc_load_exc);
@@ -472,14 +488,14 @@
 	goto byte_copy;
 
 handle_load_error:
-	__asm__ __volatile__ ("pmc_load_exc:\n");
+	__asm__ __volatile__ ("\npmc_load_exc:\n");
 	d = &__get_cpu_var(exception_data);
 	DPRINTF("pmc_load_exc: o_len=%lu fault_addr=%lu o_src=%lu ret=%lu\n",
 		o_len, d->fault_addr, o_src, o_len - d->fault_addr + o_src);
 	return o_len - d->fault_addr + o_src;
 
 handle_store_error:
-	__asm__ __volatile__ ("pmc_store_exc:\n");
+	__asm__ __volatile__ ("\npmc_store_exc:\n");
 	d = &__get_cpu_var(exception_data);
 	DPRINTF("pmc_store_exc: o_len=%lu fault_addr=%lu o_dst=%lu ret=%lu\n",
 		o_len, d->fault_addr, o_dst, o_len - d->fault_addr + o_dst);

[-- Attachment #3: uaccess.h.beautify.diff --]
[-- Type: text/plain, Size: 14563 bytes --]

--- linux-2.6.17-rc1-pa1/include/asm-parisc/uaccess.h.Orig	2006-04-10 14:05:32.000000000 +0000
+++ linux-2.6.17-rc1-pa1/include/asm-parisc/uaccess.h	2006-04-10 16:28:14.000000000 +0000
@@ -76,97 +76,122 @@
 	unsigned long fault_addr;
 };
 
-#define __get_user(x,ptr)                               \
-({                                                      \
-	register long __gu_err __asm__ ("r8") = 0;      \
-	register long __gu_val __asm__ ("r9") = 0;      \
-							\
-	if (segment_eq(get_fs(),KERNEL_DS)) {           \
-	    switch (sizeof(*(ptr))) {                   \
-	    case 1: __get_kernel_asm("ldb",ptr); break; \
-	    case 2: __get_kernel_asm("ldh",ptr); break; \
-	    case 4: __get_kernel_asm("ldw",ptr); break; \
-	    case 8: LDD_KERNEL(ptr); break;		\
-	    default: __get_kernel_bad(); break;         \
-	    }                                           \
-	}                                               \
-	else {                                          \
-	    switch (sizeof(*(ptr))) {                   \
-	    case 1: __get_user_asm("ldb",ptr); break;   \
-	    case 2: __get_user_asm("ldh",ptr); break;   \
-	    case 4: __get_user_asm("ldw",ptr); break;   \
-	    case 8: LDD_USER(ptr);  break;		\
-	    default: __get_user_bad(); break;           \
-	    }                                           \
-	}                                               \
-							\
-	(x) = (__typeof__(*(ptr))) __gu_val;            \
-	__gu_err;                                       \
+#define __get_user(x, ptr)	({				\
+								\
+	register long __gu_err __asm__ ("r8") = 0;		\
+	register long __gu_val __asm__ ("r9") = 0;		\
+								\
+	if (segment_eq(get_fs(), KERNEL_DS)) {			\
+		switch (sizeof(*(ptr))) {			\
+			case 1: __get_kernel_asm("ldb", ptr);	\
+				break;				\
+			case 2: __get_kernel_asm("ldh", ptr);	\
+				break;				\
+			case 4: __get_kernel_asm("ldw", ptr);	\
+				break;				\
+			case 8: LDD_KERNEL(ptr);		\
+				break;				\
+			default: __get_kernel_bad();		\
+				break;				\
+		}						\
+	} else {						\
+		switch (sizeof(*(ptr))) {			\
+			case 1: __get_user_asm("ldb", ptr);	\
+				break;				\
+			case 2: __get_user_asm("ldh", ptr);	\
+				break;				\
+			case 4: __get_user_asm("ldw", ptr);	\
+				break;				\
+			case 8: LDD_USER(ptr);			\
+				break;				\
+			default: __get_user_bad();		\
+				break;				\
+		}						\
+	}							\
+								\
+	(x) = (__typeof__(*(ptr))) __gu_val;			\
+	__gu_err;						\
 })
 
 #ifdef __LP64__
-#define __get_kernel_asm(ldx,ptr)                       \
-	__asm__("\n1:\t" ldx "\t0(%2),%0\n"             \
-		"\t.section __ex_table,\"aw\"\n"        \
-		"\t.dword\t1b,fixup_get_user_skip_1\n"	\
-		"\t.previous"                          	\
-		: "=r"(__gu_val), "=r"(__gu_err)        \
+#define __get_kernel_asm(ldx, ptr)			\
+	__asm__ ("\n"					\
+	"1:	" ldx "		0(%2), %0\n"		\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.dword	1b, fixup_get_user_skip_1\n"	\
+	"	.previous"				\
+		: "=r"(__gu_val), "=r"(__gu_err)	\
 		: "r"(ptr), "1"(__gu_err)		\
-		: "r1");
+		: "r1"					\
+	)
 
-#define __get_user_asm(ldx,ptr)                         \
-	__asm__("\n1:\t" ldx "\t0(%%sr3,%2),%0\n"       \
-		"\t.section __ex_table,\"aw\"\n"	\
-		"\t.dword\t1b,fixup_get_user_skip_1\n"	\
-		"\t.previous"				\
-		: "=r"(__gu_val), "=r"(__gu_err)        \
+#define __get_user_asm(ldx, ptr)			\
+	__asm__ ("\n"					\
+	"1:	" ldx "		0(%%sr3, %2), %0\n"	\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.dword	1b, fixup_get_user_skip_1\n"	\
+	"	.previous"				\
+		: "=r"(__gu_val), "=r"(__gu_err)	\
 		: "r"(ptr), "1"(__gu_err)		\
-		: "r1");
+		: "r1"					\
+	)
 #else
-#define __get_kernel_asm(ldx,ptr)                       \
-	__asm__("\n1:\t" ldx "\t0(%2),%0\n"             \
-		"\t.section __ex_table,\"aw\"\n"        \
-		"\t.word\t1b,fixup_get_user_skip_1\n"	\
-		"\t.previous"                          	\
-		: "=r"(__gu_val), "=r"(__gu_err)        \
+#define __get_kernel_asm(ldx, ptr)			\
+	__asm__ ("\n"					\
+	"1:	" ldx "		0(%2), %0\n"		\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.word	1b, fixup_get_user_skip_1\n"	\
+	"	.previous"				\
+		: "=r"(__gu_val), "=r"(__gu_err)	\
 		: "r"(ptr), "1"(__gu_err)		\
-		: "r1");
+		: "r1"					\
+	)
 
-#define __get_user_asm(ldx,ptr)                         \
-	__asm__("\n1:\t" ldx "\t0(%%sr3,%2),%0\n"       \
-		"\t.section __ex_table,\"aw\"\n"	\
-		 "\t.word\t1b,fixup_get_user_skip_1\n"	\
-		 "\t.previous"                          \
-		: "=r"(__gu_val), "=r"(__gu_err)        \
+#define __get_user_asm(ldx, ptr)			\
+	__asm__ ("\n"					\
+	"1:	" ldx "		0(%%sr3, %2), %0\n"	\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.word	1b, fixup_get_user_skip_1\n"	\
+	"	.previous"				\
+		: "=r"(__gu_val), "=r"(__gu_err)	\
 		: "r"(ptr), "1"(__gu_err)		\
-		: "r1");
+		: "r1"					\
+	)
 #endif /* !__LP64__ */
 
-#define __put_user(x,ptr)                                       \
-({								\
-	register long __pu_err __asm__ ("r8") = 0;      	\
-        __typeof__(*(ptr)) __x = (__typeof__(*(ptr)))(x);	\
-								\
-	if (segment_eq(get_fs(),KERNEL_DS)) {                   \
-	    switch (sizeof(*(ptr))) {                           \
-	    case 1: __put_kernel_asm("stb",__x,ptr); break;     \
-	    case 2: __put_kernel_asm("sth",__x,ptr); break;     \
-	    case 4: __put_kernel_asm("stw",__x,ptr); break;     \
-	    case 8: STD_KERNEL(__x,ptr); break;			\
-	    default: __put_kernel_bad(); break;			\
-	    }                                                   \
-	}                                                       \
-	else {                                                  \
-	    switch (sizeof(*(ptr))) {                           \
-	    case 1: __put_user_asm("stb",__x,ptr); break;       \
-	    case 2: __put_user_asm("sth",__x,ptr); break;       \
-	    case 4: __put_user_asm("stw",__x,ptr); break;       \
-	    case 8: STD_USER(__x,ptr); break;			\
-	    default: __put_user_bad(); break;			\
-	    }                                                   \
-	}                                                       \
-								\
-	__pu_err;						\
+#define __put_user(x, ptr)	({					\
+									\
+	register long __pu_err __asm__ ("r8") = 0;			\
+        __typeof__(*(ptr)) __x = (__typeof__(*(ptr)))(x);		\
+									\
+	if (segment_eq(get_fs(),KERNEL_DS)) {				\
+		switch (sizeof(*(ptr))) {				\
+			case 1: __put_kernel_asm("stb", __x, ptr);	\
+				break;					\
+			case 2: __put_kernel_asm("sth", __x, ptr);	\
+				break;					\
+			case 4: __put_kernel_asm("stw", __x, ptr);	\
+				break;					\
+			case 8: STD_KERNEL(__x, ptr);			\
+				break;					\
+			default: __put_kernel_bad();			\
+				break;					\
+		}							\
+	} else {							\
+		switch (sizeof(*(ptr))) {				\
+			case 1: __put_user_asm("stb", __x, ptr);	\
+				break;					\
+			case 2: __put_user_asm("sth", __x, ptr);	\
+				break;					\
+			case 4: __put_user_asm("stw", __x, ptr);	\
+				break;					\
+			case 8: STD_USER(__x, ptr);			\
+				break;					\
+			default: __put_user_bad();			\
+				break;					\
+		}							\
+	}								\
+	__pu_err;							\
 })
 
 /*
@@ -176,75 +201,82 @@
  */
 
 #ifdef __LP64__
-#define __put_kernel_asm(stx,x,ptr)                         \
-	__asm__ __volatile__ (                              \
-		"\n1:\t" stx "\t%2,0(%1)\n"                 \
-		"\t.section __ex_table,\"aw\"\n"            \
-		"\t.dword\t1b,fixup_put_user_skip_1\n"	    \
-		"\t.previous"                               \
-		: "=r"(__pu_err)                            \
-		: "r"(ptr), "r"(x), "0"(__pu_err))
-
-#define __put_user_asm(stx,x,ptr)                           \
-	__asm__ __volatile__ (                              \
-		"\n1:\t" stx "\t%2,0(%%sr3,%1)\n"           \
-		"\t.section __ex_table,\"aw\"\n"            \
-		 "\t.dword\t1b,fixup_put_user_skip_1\n"	    \
-		 "\t.previous"                              \
-		: "=r"(__pu_err)                            \
-		: "r"(ptr), "r"(x), "0"(__pu_err)	    \
-		: "r1")
+#define __put_kernel_asm(stx, x, ptr)			\
+	__asm__ __volatile__ ("\n"			\
+	"1:	" stx "		%2, 0(%1)\n"		\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.dword	1b, fixup_put_user_skip_1\n"	\
+	"	.previous"				\
+		: "=r"(__pu_err)			\
+		: "r"(ptr), "r"(x), "0"(__pu_err)	\
+		: "r1"					\
+	)
+
+#define __put_user_asm(stx, x, ptr)			\
+	__asm__ __volatile__ ("\n"			\
+	"1:	" stx "		%2, 0(%%sr3, %1)\n"	\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.dword	1b, fixup_put_user_skip_1\n"    \
+	"	.previous"				\
+		: "=r"(__pu_err)			\
+		: "r"(ptr), "r"(x), "0"(__pu_err)	\
+		: "r1"					\
+	)
 #else
-#define __put_kernel_asm(stx,x,ptr)                         \
-	__asm__ __volatile__ (                              \
-		"\n1:\t" stx "\t%2,0(%1)\n"                 \
-		"\t.section __ex_table,\"aw\"\n"            \
-		 "\t.word\t1b,fixup_put_user_skip_1\n"	    \
-		 "\t.previous"                              \
-		: "=r"(__pu_err)                            \
-		: "r"(ptr), "r"(x), "0"(__pu_err)	    \
-		: "r1")
-
-#define __put_user_asm(stx,x,ptr)                           \
-	__asm__ __volatile__ (                              \
-		"\n1:\t" stx "\t%2,0(%%sr3,%1)\n"           \
-		"\t.section __ex_table,\"aw\"\n"            \
-		 "\t.word\t1b,fixup_put_user_skip_1\n"      \
-		 "\t.previous"                              \
-		: "=r"(__pu_err)                            \
-		: "r"(ptr), "r"(x), "0"(__pu_err)	    \
-		: "r1")
-
-#define __put_kernel_asm64(__val,ptr) do {		    	    \
-	u64 __val64 = (u64)(__val);				    \
-	u32 hi = (__val64) >> 32;					    \
-	u32 lo = (__val64) & 0xffffffff;				    \
-	__asm__ __volatile__ (				    \
-		"\n1:\tstw %2,0(%1)\n"			    \
-		"\n2:\tstw %3,4(%1)\n"			    \
-		"\t.section __ex_table,\"aw\"\n"	    \
-		 "\t.word\t1b,fixup_put_user_skip_2\n"	    \
-		 "\t.word\t2b,fixup_put_user_skip_1\n"	    \
-		 "\t.previous"				    \
-		: "=r"(__pu_err)                            \
-		: "r"(ptr), "r"(hi), "r"(lo), "0"(__pu_err) \
-		: "r1");				    \
+#define __put_kernel_asm(stx, x, ptr)			\
+	__asm__ __volatile__ ("\n"			\
+	"1:	" stx "		%2, 0(%1)\n"		\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.word	1b, fixup_put_user_skip_1\n"	\
+	"	.previous"				\
+		: "=r"(__pu_err)			\
+		: "r"(ptr), "r"(x), "0"(__pu_err)	\
+		: "r1"					\
+	)
+
+#define __put_user_asm(stx, x, ptr)			\
+	__asm__ __volatile__ ("\n"			\
+	"1:	" stx "		%2, 0(%%sr3, %1)\n"	\
+	"	.section __ex_table,\"aw\"\n"		\
+	"	.word	1b, fixup_put_user_skip_1\n"	\
+	"	.previous"				\
+		: "=r"(__pu_err)			\
+		: "r"(ptr), "r"(x), "0"(__pu_err)	\
+		: "r1"					\
+	)
+
+#define __put_kernel_asm64(__val, ptr) do {			\
+	u64 __val64 = (u64)(__val);				\
+	u32 hi = (__val64) >> 32;				\
+	u32 lo = (__val64) & 0xffffffff;			\
+	__asm__ __volatile__ ("\n"				\
+	"1:	stw		%2, 0(%1)\n"			\
+	"2:	stw		%3, 4(%1)\n"			\
+	"	.section __ex_table,\"aw\"\n"			\
+	"	.word	1b, fixup_put_user_skip_2\n"		\
+	"	.word	2b, fixup_put_user_skip_1\n"		\
+	"	.previous"					\
+		: "=r"(__pu_err)				\
+		: "r"(ptr), "r"(hi), "r"(lo), "0"(__pu_err)	\
+		: "r1"						\
+	);							\
 } while (0)
 
-#define __put_user_asm64(__val,ptr) do {		    	    \
-	u64 __val64 = (u64)__val;				    \
-	u32 hi = (__val64) >> 32;					    \
-	u32 lo = (__val64) & 0xffffffff;				    \
-	__asm__ __volatile__ (				    \
-		"\n1:\tstw %2,0(%%sr3,%1)\n"		    \
-		"\n2:\tstw %3,4(%%sr3,%1)\n"		    \
-		"\t.section __ex_table,\"aw\"\n"	    \
-		 "\t.word\t1b,fixup_get_user_skip_2\n"	    \
-		 "\t.word\t2b,fixup_get_user_skip_1\n"	    \
-		 "\t.previous"				    \
-		: "=r"(__pu_err)                            \
-		: "r"(ptr), "r"(hi), "r"(lo), "0"(__pu_err) \
-		: "r1");				    \
+#define __put_user_asm64(__val, ptr) do {			\
+	u64 __val64 = (u64)__val;				\
+	u32 hi = (__val64) >> 32;				\
+	u32 lo = (__val64) & 0xffffffff;			\
+	__asm__ __volatile__ ("\n"				\
+	"1:	stw		%2, 0(%%sr3, %1)\n"		\
+	"2:	stw		%3, 4(%%sr3, %1)\n"		\
+	"	.section __ex_table,\"aw\"\n"			\
+	"	.word	1b, fixup_get_user_skip_2\n"		\
+	"	.word	2b, fixup_get_user_skip_1\n"		\
+	"	.previous"					\
+		: "=r"(__pu_err)				\
+		: "r"(ptr), "r"(hi), "r"(lo), "0"(__pu_err)	\
+		: "r1"						\
+	);							\
 } while (0)
 
 #endif /* !__LP64__ */
@@ -256,7 +288,8 @@
 
 extern unsigned long lcopy_to_user(void __user *, const void *, unsigned long);
 extern unsigned long lcopy_from_user(void *, const void __user *, unsigned long);
-extern unsigned long lcopy_in_user(void __user *, const void __user *, unsigned long);
+extern unsigned long lcopy_in_user(void __user *, const void __user *,
+					unsigned long);
 extern long lstrncpy_from_user(char *, const char __user *, long);
 extern unsigned lclear_user(void __user *,unsigned long);
 extern long lstrnlen_user(const char __user *,long);
@@ -265,19 +298,24 @@
  * Complex access routines -- macros
  */
 
-#define strncpy_from_user lstrncpy_from_user
-#define strnlen_user lstrnlen_user
-#define strlen_user(str) lstrnlen_user(str, 0x7fffffffL)
-#define clear_user lclear_user
-#define __clear_user lclear_user
-
-unsigned long copy_to_user(void __user *dst, const void *src, unsigned long len);
-#define __copy_to_user copy_to_user
-unsigned long copy_from_user(void *dst, const void __user *src, unsigned long len);
-#define __copy_from_user copy_from_user
-unsigned long copy_in_user(void __user *dst, const void __user *src, unsigned long len);
-#define __copy_in_user copy_in_user
-#define __copy_to_user_inatomic __copy_to_user
-#define __copy_from_user_inatomic __copy_from_user
+#define strncpy_from_user	lstrncpy_from_user
+#define strnlen_user		lstrnlen_user
+#define strlen_user(str)	lstrnlen_user(str, 0x7fffffffL)
+#define clear_user		lclear_user
+#define __clear_user		lclear_user
+
+unsigned long copy_to_user(void __user *dst, const void *src,
+				unsigned long len);
+#define __copy_to_user	copy_to_user
+
+unsigned long copy_from_user(void *dst, const void __user *src,
+				unsigned long len);
+#define __copy_from_user 	copy_from_user
+
+unsigned long copy_in_user(void __user *dst, const void __user *src,
+				unsigned long len);
+#define __copy_in_user			copy_in_user
+#define __copy_to_user_inatomic		__copy_to_user
+#define __copy_from_user_inatomic	__copy_from_user
 
 #endif /* __PARISC_UACCESS_H */

[-- Attachment #4: Type: text/plain, Size: 169 bytes --]

_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-04-18 22:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-11  9:37 [parisc-linux] some whitespace rework and attempt to beautify inline asm stuff? Joel Soete
2006-04-16 20:14 ` [parisc-linux] Does it lakes some cloberred r1 in __put_kernel_asm() 64bit? Joel Soete
2006-04-18 20:35   ` Carlos O'Donell
2006-04-18 22:35     ` Michael S. Zick
2006-04-16 20:37 ` [parisc-linux] more whitespace rework and attempt to beautify inline asm stuff? Joel Soete

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.