Loading arch/mips/mm/sc-ip22.c +23 −20 Original line number Diff line number Diff line Loading @@ -31,26 +31,29 @@ static inline void indy_sc_wipe(unsigned long first, unsigned long last) unsigned long tmp; __asm__ __volatile__( ".set\tpush\t\t\t# indy_sc_wipe\n\t" ".set\tnoreorder\n\t" ".set\tmips3\n\t" ".set\tnoat\n\t" "mfc0\t%2, $12\n\t" "li\t$1, 0x80\t\t\t# Go 64 bit\n\t" "mtc0\t$1, $12\n\t" "dli\t$1, 0x9000000080000000\n\t" "or\t%0, $1\t\t\t# first line to flush\n\t" "or\t%1, $1\t\t\t# last line to flush\n\t" ".set\tat\n\t" "1:\tsw\t$0, 0(%0)\n\t" "bne\t%0, %1, 1b\n\t" " daddu\t%0, 32\n\t" "mtc0\t%2, $12\t\t\t# Back to 32 bit\n\t" "nop; nop; nop; nop;\n\t" ".set\tpop" " .set push # indy_sc_wipe \n" " .set noreorder \n" " .set mips3 \n" " .set noat \n" " mfc0 %2, $12 \n" " li $1, 0x80 # Go 64 bit \n" " mtc0 $1, $12 \n" " \n" " dli $1, 0x9000000080000000 \n" " or %0, $1 # first line to flush \n" " or %1, $1 # last line to flush \n" " .set at \n" " \n" "1: sw $0, 0(%0) \n" " bne %0, %1, 1b \n" " daddu %0, 32 \n" " \n" " mtc0 %2, $12 # Back to 32 bit \n" " nop # pipeline hazard \n" " nop \n" " nop \n" " nop \n" " .set pop \n" : "=r" (first), "=r" (last), "=&r" (tmp) : "0" (first), "1" (last)); } Loading Loading
arch/mips/mm/sc-ip22.c +23 −20 Original line number Diff line number Diff line Loading @@ -31,26 +31,29 @@ static inline void indy_sc_wipe(unsigned long first, unsigned long last) unsigned long tmp; __asm__ __volatile__( ".set\tpush\t\t\t# indy_sc_wipe\n\t" ".set\tnoreorder\n\t" ".set\tmips3\n\t" ".set\tnoat\n\t" "mfc0\t%2, $12\n\t" "li\t$1, 0x80\t\t\t# Go 64 bit\n\t" "mtc0\t$1, $12\n\t" "dli\t$1, 0x9000000080000000\n\t" "or\t%0, $1\t\t\t# first line to flush\n\t" "or\t%1, $1\t\t\t# last line to flush\n\t" ".set\tat\n\t" "1:\tsw\t$0, 0(%0)\n\t" "bne\t%0, %1, 1b\n\t" " daddu\t%0, 32\n\t" "mtc0\t%2, $12\t\t\t# Back to 32 bit\n\t" "nop; nop; nop; nop;\n\t" ".set\tpop" " .set push # indy_sc_wipe \n" " .set noreorder \n" " .set mips3 \n" " .set noat \n" " mfc0 %2, $12 \n" " li $1, 0x80 # Go 64 bit \n" " mtc0 $1, $12 \n" " \n" " dli $1, 0x9000000080000000 \n" " or %0, $1 # first line to flush \n" " or %1, $1 # last line to flush \n" " .set at \n" " \n" "1: sw $0, 0(%0) \n" " bne %0, %1, 1b \n" " daddu %0, 32 \n" " \n" " mtc0 %2, $12 # Back to 32 bit \n" " nop # pipeline hazard \n" " nop \n" " nop \n" " nop \n" " .set pop \n" : "=r" (first), "=r" (last), "=&r" (tmp) : "0" (first), "1" (last)); } Loading