diff options
Diffstat (limited to 'include/asm-mips/asmmacro.h')
| -rw-r--r-- | include/asm-mips/asmmacro.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/asm-mips/asmmacro.h b/include/asm-mips/asmmacro.h index 30b18ea6cb11..f54aa147ec19 100644 --- a/include/asm-mips/asmmacro.h +++ b/include/asm-mips/asmmacro.h | |||
| @@ -17,7 +17,26 @@ | |||
| 17 | #ifdef CONFIG_64BIT | 17 | #ifdef CONFIG_64BIT |
| 18 | #include <asm/asmmacro-64.h> | 18 | #include <asm/asmmacro-64.h> |
| 19 | #endif | 19 | #endif |
| 20 | #ifdef CONFIG_MIPS_MT_SMTC | ||
| 21 | #include <asm/mipsmtregs.h> | ||
| 22 | #endif | ||
| 20 | 23 | ||
| 24 | #ifdef CONFIG_MIPS_MT_SMTC | ||
| 25 | .macro local_irq_enable reg=t0 | ||
| 26 | mfc0 \reg, CP0_TCSTATUS | ||
| 27 | ori \reg, \reg, TCSTATUS_IXMT | ||
| 28 | xori \reg, \reg, TCSTATUS_IXMT | ||
| 29 | mtc0 \reg, CP0_TCSTATUS | ||
| 30 | ehb | ||
| 31 | .endm | ||
| 32 | |||
| 33 | .macro local_irq_disable reg=t0 | ||
| 34 | mfc0 \reg, CP0_TCSTATUS | ||
| 35 | ori \reg, \reg, TCSTATUS_IXMT | ||
| 36 | mtc0 \reg, CP0_TCSTATUS | ||
| 37 | ehb | ||
| 38 | .endm | ||
| 39 | #else | ||
| 21 | .macro local_irq_enable reg=t0 | 40 | .macro local_irq_enable reg=t0 |
| 22 | mfc0 \reg, CP0_STATUS | 41 | mfc0 \reg, CP0_STATUS |
| 23 | ori \reg, \reg, 1 | 42 | ori \reg, \reg, 1 |
| @@ -32,6 +51,7 @@ | |||
| 32 | mtc0 \reg, CP0_STATUS | 51 | mtc0 \reg, CP0_STATUS |
| 33 | irq_disable_hazard | 52 | irq_disable_hazard |
| 34 | .endm | 53 | .endm |
| 54 | #endif /* CONFIG_MIPS_MT_SMTC */ | ||
| 35 | 55 | ||
| 36 | #ifdef CONFIG_CPU_SB1 | 56 | #ifdef CONFIG_CPU_SB1 |
| 37 | .macro fpu_enable_hazard | 57 | .macro fpu_enable_hazard |
| @@ -48,4 +68,31 @@ | |||
| 48 | .endm | 68 | .endm |
| 49 | #endif | 69 | #endif |
| 50 | 70 | ||
| 71 | /* | ||
| 72 | * Temporary until all gas have MT ASE support | ||
| 73 | */ | ||
| 74 | .macro DMT reg=0 | ||
| 75 | .word (0x41600bc1 | (\reg << 16)) | ||
| 76 | .endm | ||
| 77 | |||
| 78 | .macro EMT reg=0 | ||
| 79 | .word (0x41600be1 | (\reg << 16)) | ||
| 80 | .endm | ||
| 81 | |||
| 82 | .macro DVPE reg=0 | ||
| 83 | .word (0x41600001 | (\reg << 16)) | ||
| 84 | .endm | ||
| 85 | |||
| 86 | .macro EVPE reg=0 | ||
| 87 | .word (0x41600021 | (\reg << 16)) | ||
| 88 | .endm | ||
| 89 | |||
| 90 | .macro MFTR rt=0, rd=0, u=0, sel=0 | ||
| 91 | .word (0x41000000 | (\rt << 16) | (\rd << 11) | (\u << 5) | (\sel)) | ||
| 92 | .endm | ||
| 93 | |||
| 94 | .macro MTTR rt=0, rd=0, u=0, sel=0 | ||
| 95 | .word (0x41800000 | (\rt << 16) | (\rd << 11) | (\u << 5) | (\sel)) | ||
| 96 | .endm | ||
| 97 | |||
| 51 | #endif /* _ASM_ASMMACRO_H */ | 98 | #endif /* _ASM_ASMMACRO_H */ |
