@@ -27,7 +27,7 @@ Inline assembly is currently supported on the following architectures:
2727- RISC-V
2828- NVPTX
2929- Hexagon
30- - MIPS32
30+ - MIPS32r2 and MIPS64r2
3131
3232## Basic usage
3333
@@ -513,8 +513,8 @@ Here is the list of currently supported register classes:
513513| ARM | ` qreg ` | ` q[0-15] ` | ` w ` |
514514| ARM | ` qreg_low8 ` | ` q[0-7] ` | ` t ` |
515515| ARM | ` qreg_low4 ` | ` q[0-3] ` | ` x ` |
516- | MIPS32 | ` reg ` | ` $[2-25] ` | ` r ` |
517- | MIPS32 | ` freg ` | ` $f[0-31] ` | ` f ` |
516+ | MIPS | ` reg ` | ` $[2-25] ` | ` r ` |
517+ | MIPS | ` freg ` | ` $f[0-31] ` | ` f ` |
518518| NVPTX | ` reg16 ` | None\* | ` h ` |
519519| NVPTX | ` reg32 ` | None\* | ` r ` |
520520| NVPTX | ` reg64 ` | None\* | ` l ` |
@@ -552,6 +552,8 @@ Each register class has constraints on which value types they can be used with.
552552| ARM | ` qreg ` | ` neon ` | ` i8x16 ` , ` i16x8 ` , ` i32x4 ` , ` i64x2 ` , ` f32x4 ` |
553553| MIPS32 | ` reg ` | None | ` i8 ` , ` i16 ` , ` i32 ` , ` f32 ` |
554554| MIPS32 | ` freg ` | None | ` f32 ` , ` f64 ` |
555+ | MIPS64 | ` reg ` | None | ` i8 ` , ` i16 ` , ` i32 ` , ` i64 ` , ` f32 ` , ` f64 ` |
556+ | MIPS64 | ` freg ` | None | ` f32 ` , ` f64 ` |
555557| NVPTX | ` reg16 ` | None | ` i8 ` , ` i16 ` |
556558| NVPTX | ` reg32 ` | None | ` i8 ` , ` i16 ` , ` i32 ` , ` f32 ` |
557559| NVPTX | ` reg64 ` | None | ` i8 ` , ` i16 ` , ` i32 ` , ` f32 ` , ` i64 ` , ` f64 ` |
@@ -637,11 +639,11 @@ Some registers cannot be used for input or output operands:
637639| x86 | ` st([0-7]) ` | x87 registers are not currently supported (but may be in the future). |
638640| AArch64 | ` xzr ` | This is a constant zero register which can't be modified. |
639641| ARM | ` pc ` | This is the program counter, not a real register. |
640- | MIPS32 | ` $0 ` or ` $zero ` | This is a constant zero register which can't be modified. |
641- | MIPS32 | ` $1 ` or ` $at ` | Reserved for assembler. |
642- | MIPS32 | ` $26 ` /` $k0 ` , ` $27 ` /` $k1 ` | OS-reserved registers. |
643- | MIPS32 | ` $28 ` /` $gp ` | Global pointer cannot be used as inputs or outputs. |
644- | MIPS32 | ` $ra ` | Return address cannot be used as inputs or outputs. |
642+ | MIPS | ` $0 ` or ` $zero ` | This is a constant zero register which can't be modified. |
643+ | MIPS | ` $1 ` or ` $at ` | Reserved for assembler. |
644+ | MIPS | ` $26 ` /` $k0 ` , ` $27 ` /` $k1 ` | OS-reserved registers. |
645+ | MIPS | ` $28 ` /` $gp ` | Global pointer cannot be used as inputs or outputs. |
646+ | MIPS | ` $ra ` | Return address cannot be used as inputs or outputs. |
645647| RISC-V | ` x0 ` | This is a constant zero register which can't be modified. |
646648| RISC-V | ` gp ` , ` tp ` | These registers are reserved and cannot be used as inputs or outputs. |
647649| Hexagon | ` lr ` | This is the link register which cannot be used as an input or output. |
@@ -689,8 +691,8 @@ The supported modifiers are a subset of LLVM's (and GCC's) [asm template argumen
689691| ARM | ` dreg ` | None | ` d0 ` | ` P ` |
690692| ARM | ` qreg ` | None | ` q0 ` | ` q ` |
691693| ARM | ` qreg ` | ` e ` / ` f ` | ` d0 ` / ` d1 ` | ` e ` / ` f ` |
692- | MIPS32 | ` reg ` | None | ` $2 ` | None |
693- | MIPS32 | ` freg ` | None | ` $f0 ` | None |
694+ | MIPS | ` reg ` | None | ` $2 ` | None |
695+ | MIPS | ` freg ` | None | ` $f0 ` | None |
694696| NVPTX | ` reg16 ` | None | ` rs0 ` | None |
695697| NVPTX | ` reg32 ` | None | ` r0 ` | None |
696698| NVPTX | ` reg64 ` | None | ` rd0 ` | None |
0 commit comments