7 #include <linux/module.h>
8 #include <asm/uaccess.h>
18 "1: "MOVES".l (%1)+,%3\n"
24 "3: "MOVES".w (%1)+,%3\n"
28 "5: "MOVES".b (%1)+,%3\n"
31 " .section .fixup,\"ax\"\n"
49 " .section __ex_table,\"a\"\n"
55 :
"=d" (
res),
"+a" (from),
"+a" (to),
"=&r" (tmp)
56 :
"0" (n / 4),
"d" (n & 3));
70 "1: move.l (%1)+,%3\n"
71 "2: "MOVES".l %3,(%2)+\n"
77 "5: "MOVES".w %3,(%2)+\n"
81 "7: "MOVES".b %3,(%2)+\n"
83 " .section .fixup,\"ax\"\n"
90 " .section __ex_table,\"a\"\n"
99 :
"=d" (
res),
"+a" (from),
"+a" (to),
"=&r" (tmp)
100 :
"0" (n / 4),
"d" (n & 3));
117 "1: "MOVES".l %2,(%1)+\n"
122 "4: "MOVES".w %2,(%1)+\n"
125 "6: "MOVES".b %2,(%1)\n"
127 " .section .fixup,\"ax\"\n"
134 " .section __ex_table,\"a\"\n"
143 :
"=d" (
res),
"+a" (to)
144 :
"r" (0),
"0" (n / 4),
"d" (n & 3));