diff options
| author | Ralf Baechle <ralf@linux-mips.org> | 2006-04-05 04:45:45 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2006-04-18 22:14:28 -0400 |
| commit | 41c594ab65fc89573af296d192aa5235d09717ab (patch) | |
| tree | 562462512a320f386bdf49eabfbb26bb3ee761fa /arch/mips/kernel/gdb-low.S | |
| parent | 2600990e640e3bef29ed89d565864cf16ee83833 (diff) | |
[MIPS] MT: Improved multithreading support.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/gdb-low.S')
| -rw-r--r-- | arch/mips/kernel/gdb-low.S | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/arch/mips/kernel/gdb-low.S b/arch/mips/kernel/gdb-low.S index 235ad9f6bd35..10f28fb9f008 100644 --- a/arch/mips/kernel/gdb-low.S +++ b/arch/mips/kernel/gdb-low.S | |||
| @@ -283,11 +283,33 @@ | |||
| 283 | */ | 283 | */ |
| 284 | 284 | ||
| 285 | 3: | 285 | 3: |
| 286 | #ifdef CONFIG_MIPS_MT_SMTC | ||
| 287 | /* Read-modify write of Status must be atomic */ | ||
| 288 | mfc0 t2, CP0_TCSTATUS | ||
| 289 | ori t1, t2, TCSTATUS_IXMT | ||
| 290 | mtc0 t1, CP0_TCSTATUS | ||
| 291 | andi t2, t2, TCSTATUS_IXMT | ||
| 292 | ehb | ||
| 293 | DMT 9 # dmt t1 | ||
| 294 | jal mips_ihb | ||
| 295 | nop | ||
| 296 | #endif /* CONFIG_MIPS_MT_SMTC */ | ||
| 286 | mfc0 t0, CP0_STATUS | 297 | mfc0 t0, CP0_STATUS |
| 287 | ori t0, 0x1f | 298 | ori t0, 0x1f |
| 288 | xori t0, 0x1f | 299 | xori t0, 0x1f |
| 289 | mtc0 t0, CP0_STATUS | 300 | mtc0 t0, CP0_STATUS |
| 290 | 301 | #ifdef CONFIG_MIPS_MT_SMTC | |
| 302 | andi t1, t1, VPECONTROL_TE | ||
| 303 | beqz t1, 9f | ||
| 304 | nop | ||
| 305 | EMT # emt | ||
| 306 | 9: | ||
| 307 | mfc0 t1, CP0_TCSTATUS | ||
| 308 | xori t1, t1, TCSTATUS_IXMT | ||
| 309 | or t1, t1, t2 | ||
| 310 | mtc0 t1, CP0_TCSTATUS | ||
| 311 | ehb | ||
| 312 | #endif /* CONFIG_MIPS_MT_SMTC */ | ||
| 291 | LONG_L v0, GDB_FR_STATUS(sp) | 313 | LONG_L v0, GDB_FR_STATUS(sp) |
| 292 | LONG_L v1, GDB_FR_EPC(sp) | 314 | LONG_L v1, GDB_FR_EPC(sp) |
| 293 | mtc0 v0, CP0_STATUS | 315 | mtc0 v0, CP0_STATUS |
