diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2006-06-03 17:40:15 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-06-29 16:10:49 -0400 |
commit | 4277ff5ee55694f67d9c6586bb4c06991e221a68 (patch) | |
tree | c75ff9101d0dc14688c86f709370d3e122e7402a /include/asm-mips/stackframe.h | |
parent | b4ab24e1c8c1442b2928bab1325b56bdbbcf898e (diff) |
[MIPS] Fix use of ehb instruction for non-R2 configurations.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include/asm-mips/stackframe.h')
-rw-r--r-- | include/asm-mips/stackframe.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/include/asm-mips/stackframe.h b/include/asm-mips/stackframe.h index 513aa5133830..158a4cd12e46 100644 --- a/include/asm-mips/stackframe.h +++ b/include/asm-mips/stackframe.h | |||
@@ -304,7 +304,7 @@ | |||
304 | mfc0 v0, CP0_TCSTATUS | 304 | mfc0 v0, CP0_TCSTATUS |
305 | ori v0, TCSTATUS_IXMT | 305 | ori v0, TCSTATUS_IXMT |
306 | mtc0 v0, CP0_TCSTATUS | 306 | mtc0 v0, CP0_TCSTATUS |
307 | ehb | 307 | _ehb |
308 | DMT 5 # dmt a1 | 308 | DMT 5 # dmt a1 |
309 | jal mips_ihb | 309 | jal mips_ihb |
310 | #endif /* CONFIG_MIPS_MT_SMTC */ | 310 | #endif /* CONFIG_MIPS_MT_SMTC */ |
@@ -325,14 +325,14 @@ | |||
325 | * restore TCStatus.IXMT. | 325 | * restore TCStatus.IXMT. |
326 | */ | 326 | */ |
327 | LONG_L v1, PT_TCSTATUS(sp) | 327 | LONG_L v1, PT_TCSTATUS(sp) |
328 | ehb | 328 | _ehb |
329 | mfc0 v0, CP0_TCSTATUS | 329 | mfc0 v0, CP0_TCSTATUS |
330 | andi v1, TCSTATUS_IXMT | 330 | andi v1, TCSTATUS_IXMT |
331 | /* We know that TCStatua.IXMT should be set from above */ | 331 | /* We know that TCStatua.IXMT should be set from above */ |
332 | xori v0, v0, TCSTATUS_IXMT | 332 | xori v0, v0, TCSTATUS_IXMT |
333 | or v0, v0, v1 | 333 | or v0, v0, v1 |
334 | mtc0 v0, CP0_TCSTATUS | 334 | mtc0 v0, CP0_TCSTATUS |
335 | ehb | 335 | _ehb |
336 | andi a1, a1, VPECONTROL_TE | 336 | andi a1, a1, VPECONTROL_TE |
337 | beqz a1, 1f | 337 | beqz a1, 1f |
338 | emt | 338 | emt |
@@ -411,7 +411,7 @@ | |||
411 | /* Clear TKSU, leave IXMT */ | 411 | /* Clear TKSU, leave IXMT */ |
412 | xori t0, 0x00001800 | 412 | xori t0, 0x00001800 |
413 | mtc0 t0, CP0_TCSTATUS | 413 | mtc0 t0, CP0_TCSTATUS |
414 | ehb | 414 | _ehb |
415 | /* We need to leave the global IE bit set, but clear EXL...*/ | 415 | /* We need to leave the global IE bit set, but clear EXL...*/ |
416 | mfc0 t0, CP0_STATUS | 416 | mfc0 t0, CP0_STATUS |
417 | ori t0, ST0_EXL | ST0_ERL | 417 | ori t0, ST0_EXL | ST0_ERL |
@@ -438,7 +438,7 @@ | |||
438 | * and enable interrupts only for the | 438 | * and enable interrupts only for the |
439 | * current TC, using the TCStatus register. | 439 | * current TC, using the TCStatus register. |
440 | */ | 440 | */ |
441 | ehb | 441 | _ehb |
442 | mfc0 t0,CP0_TCSTATUS | 442 | mfc0 t0,CP0_TCSTATUS |
443 | /* Fortunately CU 0 is in the same place in both registers */ | 443 | /* Fortunately CU 0 is in the same place in both registers */ |
444 | /* Set TCU0, TKSU (for later inversion) and IXMT */ | 444 | /* Set TCU0, TKSU (for later inversion) and IXMT */ |
@@ -447,7 +447,7 @@ | |||
447 | /* Clear TKSU *and* IXMT */ | 447 | /* Clear TKSU *and* IXMT */ |
448 | xori t0, 0x00001c00 | 448 | xori t0, 0x00001c00 |
449 | mtc0 t0, CP0_TCSTATUS | 449 | mtc0 t0, CP0_TCSTATUS |
450 | ehb | 450 | _ehb |
451 | /* We need to leave the global IE bit set, but clear EXL...*/ | 451 | /* We need to leave the global IE bit set, but clear EXL...*/ |
452 | mfc0 t0, CP0_STATUS | 452 | mfc0 t0, CP0_STATUS |
453 | ori t0, ST0_EXL | 453 | ori t0, ST0_EXL |
@@ -479,7 +479,7 @@ | |||
479 | andi v1, v0, TCSTATUS_IXMT | 479 | andi v1, v0, TCSTATUS_IXMT |
480 | ori v0, TCSTATUS_IXMT | 480 | ori v0, TCSTATUS_IXMT |
481 | mtc0 v0, CP0_TCSTATUS | 481 | mtc0 v0, CP0_TCSTATUS |
482 | ehb | 482 | _ehb |
483 | DMT 2 # dmt v0 | 483 | DMT 2 # dmt v0 |
484 | /* | 484 | /* |
485 | * We don't know a priori if ra is "live" | 485 | * We don't know a priori if ra is "live" |
@@ -495,7 +495,7 @@ | |||
495 | xori t0, 0x1e | 495 | xori t0, 0x1e |
496 | mtc0 t0, CP0_STATUS | 496 | mtc0 t0, CP0_STATUS |
497 | #ifdef CONFIG_MIPS_MT_SMTC | 497 | #ifdef CONFIG_MIPS_MT_SMTC |
498 | ehb | 498 | _ehb |
499 | andi v0, v0, VPECONTROL_TE | 499 | andi v0, v0, VPECONTROL_TE |
500 | beqz v0, 2f | 500 | beqz v0, 2f |
501 | nop /* delay slot */ | 501 | nop /* delay slot */ |