aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/traps.c2
-rw-r--r--arch/arm/mach-footbridge/dc21285.c27
-rw-r--r--arch/arm/vfp/vfpinstr.h8
3 files changed, 20 insertions, 17 deletions
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index aeeed806f991..bede380c07a9 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -191,7 +191,7 @@ void show_stack(struct task_struct *tsk, unsigned long *sp)
191 if (tsk != current) 191 if (tsk != current)
192 fp = thread_saved_fp(tsk); 192 fp = thread_saved_fp(tsk);
193 else 193 else
194 asm("mov%? %0, fp" : "=r" (fp)); 194 asm("mov %0, fp" : "=r" (fp) : : "cc");
195 195
196 c_backtrace(fp, 0x10); 196 c_backtrace(fp, 0x10);
197 barrier(); 197 barrier();
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c
index 823e25d4547e..a1ae49df5c3b 100644
--- a/arch/arm/mach-footbridge/dc21285.c
+++ b/arch/arm/mach-footbridge/dc21285.c
@@ -69,16 +69,16 @@ dc21285_read_config(struct pci_bus *bus, unsigned int devfn, int where,
69 if (addr) 69 if (addr)
70 switch (size) { 70 switch (size) {
71 case 1: 71 case 1:
72 asm("ldr%?b %0, [%1, %2]" 72 asm("ldrb %0, [%1, %2]"
73 : "=r" (v) : "r" (addr), "r" (where)); 73 : "=r" (v) : "r" (addr), "r" (where) : "cc");
74 break; 74 break;
75 case 2: 75 case 2:
76 asm("ldr%?h %0, [%1, %2]" 76 asm("ldrh %0, [%1, %2]"
77 : "=r" (v) : "r" (addr), "r" (where)); 77 : "=r" (v) : "r" (addr), "r" (where) : "cc");
78 break; 78 break;
79 case 4: 79 case 4:
80 asm("ldr%? %0, [%1, %2]" 80 asm("ldr %0, [%1, %2]"
81 : "=r" (v) : "r" (addr), "r" (where)); 81 : "=r" (v) : "r" (addr), "r" (where) : "cc");
82 break; 82 break;
83 } 83 }
84 84
@@ -103,16 +103,19 @@ dc21285_write_config(struct pci_bus *bus, unsigned int devfn, int where,
103 if (addr) 103 if (addr)
104 switch (size) { 104 switch (size) {
105 case 1: 105 case 1:
106 asm("str%?b %0, [%1, %2]" 106 asm("strb %0, [%1, %2]"
107 : : "r" (value), "r" (addr), "r" (where)); 107 : : "r" (value), "r" (addr), "r" (where)
108 : "cc");
108 break; 109 break;
109 case 2: 110 case 2:
110 asm("str%?h %0, [%1, %2]" 111 asm("strh %0, [%1, %2]"
111 : : "r" (value), "r" (addr), "r" (where)); 112 : : "r" (value), "r" (addr), "r" (where)
113 : "cc");
112 break; 114 break;
113 case 4: 115 case 4:
114 asm("str%? %0, [%1, %2]" 116 asm("str %0, [%1, %2]"
115 : : "r" (value), "r" (addr), "r" (where)); 117 : : "r" (value), "r" (addr), "r" (where)
118 : "cc");
116 break; 119 break;
117 } 120 }
118 121
diff --git a/arch/arm/vfp/vfpinstr.h b/arch/arm/vfp/vfpinstr.h
index 6c819aeae006..7f343a4beca0 100644
--- a/arch/arm/vfp/vfpinstr.h
+++ b/arch/arm/vfp/vfpinstr.h
@@ -73,14 +73,14 @@
73 73
74#define fmrx(_vfp_) ({ \ 74#define fmrx(_vfp_) ({ \
75 u32 __v; \ 75 u32 __v; \
76 asm("mrc%? p10, 7, %0, " vfpreg(_vfp_) ", cr0, 0 @ fmrx %0, " #_vfp_ \ 76 asm("mrc p10, 7, %0, " vfpreg(_vfp_) ", cr0, 0 @ fmrx %0, " #_vfp_ \
77 : "=r" (__v)); \ 77 : "=r" (__v) : : "cc"); \
78 __v; \ 78 __v; \
79 }) 79 })
80 80
81#define fmxr(_vfp_,_var_) \ 81#define fmxr(_vfp_,_var_) \
82 asm("mcr%? p10, 7, %0, " vfpreg(_vfp_) ", cr0, 0 @ fmxr " #_vfp_ ", %0" \ 82 asm("mcr p10, 7, %0, " vfpreg(_vfp_) ", cr0, 0 @ fmxr " #_vfp_ ", %0" \
83 : : "r" (_var_)) 83 : : "r" (_var_) : "cc")
84 84
85u32 vfp_single_cpdo(u32 inst, u32 fpscr); 85u32 vfp_single_cpdo(u32 inst, u32 fpscr);
86u32 vfp_single_cprt(u32 inst, u32 fpscr, struct pt_regs *regs); 86u32 vfp_single_cprt(u32 inst, u32 fpscr, struct pt_regs *regs);