Skip to content

Commit

Permalink
Revert "MIPS: LD/SD o32 macro GAS fix update"
Browse files Browse the repository at this point in the history
This reverts commit 97475f8b42e83be2966aa2d70ab9c98477701c53 (lmo) /
82b8915 (kernel.org) [MIPS: LD/SD o32
macro GAS fix update].

Turns out this patch is producing many build errors with gcc 4.2.  Based
on further testing with a test case extracted from the build errors found
further build errors and suboptimal generation even in violation of the
"R" constraint.

To make matters worse, the binutils changes also don't work quite as
intended so revert this patch for now.
  • Loading branch information
Ralf Baechle committed Oct 20, 2011
1 parent dd5d138 commit b77bb37
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 20 deletions.
12 changes: 2 additions & 10 deletions arch/mips/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -329,14 +329,10 @@ static inline void pfx##write##bwlq(type val, \
"dsrl32 %L0, %L0, 0" "\n\t" \
"dsll32 %M0, %M0, 0" "\n\t" \
"or %L0, %L0, %M0" "\n\t" \
".set push" "\n\t" \
".set noreorder" "\n\t" \
".set nomacro" "\n\t" \
"sd %L0, %2" "\n\t" \
".set pop" "\n\t" \
".set mips0" "\n" \
: "=r" (__tmp) \
: "0" (__val), "R" (*__mem)); \
: "0" (__val), "m" (*__mem)); \
if (irq) \
local_irq_restore(__flags); \
} else \
Expand All @@ -359,16 +355,12 @@ static inline type pfx##read##bwlq(const volatile void __iomem *mem) \
local_irq_save(__flags); \
__asm__ __volatile__( \
".set mips3" "\t\t# __readq" "\n\t" \
".set push" "\n\t" \
".set noreorder" "\n\t" \
".set nomacro" "\n\t" \
"ld %L0, %1" "\n\t" \
".set pop" "\n\t" \
"dsra32 %M0, %L0, 0" "\n\t" \
"sll %L0, %L0, 0" "\n\t" \
".set mips0" "\n" \
: "=r" (__val) \
: "R" (*__mem)); \
: "m" (*__mem)); \
if (irq) \
local_irq_restore(__flags); \
} else { \
Expand Down
12 changes: 2 additions & 10 deletions arch/mips/pmc-sierra/yosemite/py-console.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,11 @@ static unsigned char readb_outer_space(unsigned long long phys)

__asm__ __volatile__ (
" .set mips3 \n"
" .set push \n"
" .set noreorder \n"
" .set nomacro \n"
" ld %0, %1 \n"
" .set pop \n"
" lbu %0, (%0) \n"
" .set mips0 \n"
: "=r" (res)
: "R" (vaddr));
: "m" (vaddr));

write_c0_status(sr);
ssnop_4();
Expand All @@ -93,15 +89,11 @@ static void writeb_outer_space(unsigned long long phys, unsigned char c)

__asm__ __volatile__ (
" .set mips3 \n"
" .set push \n"
" .set noreorder \n"
" .set nomacro \n"
" ld %0, %1 \n"
" .set pop \n"
" sb %2, (%0) \n"
" .set mips0 \n"
: "=&r" (tmp)
: "R" (vaddr), "r" (c));
: "m" (vaddr), "r" (c));

write_c0_status(sr);
ssnop_4();
Expand Down

0 comments on commit b77bb37

Please sign in to comment.