mipsreg.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 580 行 · 第 1/3 页
H
580 行
/*
* HW_GPR - general purpose registers - can use for any integer ops
* HW_IR - integer registers - above plus the R31 sink
* HW_FPR - floating point registers
*/
#define HW_DEFINE_COMPOUND( x ) \
enum { \
\
/* word sized registers (halfword in MIPS parlance) */ \
HW_W0_##x = (hw_reg_part)(HW_B0_##x+HW_hb0_##x), \
HW_W1_##x = (hw_reg_part)(HW_B1_##x+HW_hb1_##x), \
HW_W2_##x = (hw_reg_part)(HW_B2_##x+HW_hb2_##x), \
HW_W3_##x = (hw_reg_part)(HW_B3_##x+HW_hb3_##x), \
HW_W4_##x = (hw_reg_part)(HW_B4_##x+HW_hb4_##x), \
HW_W5_##x = (hw_reg_part)(HW_B5_##x+HW_hb5_##x), \
HW_W6_##x = (hw_reg_part)(HW_B6_##x+HW_hb6_##x), \
HW_W7_##x = (hw_reg_part)(HW_B7_##x+HW_hb7_##x), \
HW_W8_##x = (hw_reg_part)(HW_B8_##x+HW_hb8_##x), \
HW_W9_##x = (hw_reg_part)(HW_B9_##x+HW_hb9_##x), \
HW_W10_##x = (hw_reg_part)(HW_B10_##x+HW_hb10_##x), \
HW_W11_##x = (hw_reg_part)(HW_B11_##x+HW_hb11_##x), \
HW_W12_##x = (hw_reg_part)(HW_B12_##x+HW_hb12_##x), \
HW_W13_##x = (hw_reg_part)(HW_B13_##x+HW_hb13_##x), \
HW_W14_##x = (hw_reg_part)(HW_B14_##x+HW_hb14_##x), \
HW_W15_##x = (hw_reg_part)(HW_B15_##x+HW_hb15_##x), \
HW_W16_##x = (hw_reg_part)(HW_B16_##x+HW_hb16_##x), \
HW_W17_##x = (hw_reg_part)(HW_B17_##x+HW_hb17_##x), \
HW_W18_##x = (hw_reg_part)(HW_B18_##x+HW_hb18_##x), \
HW_W19_##x = (hw_reg_part)(HW_B19_##x+HW_hb19_##x), \
HW_W20_##x = (hw_reg_part)(HW_B20_##x+HW_hb20_##x), \
HW_W21_##x = (hw_reg_part)(HW_B21_##x+HW_hb21_##x), \
HW_W22_##x = (hw_reg_part)(HW_B22_##x+HW_hb22_##x), \
HW_W23_##x = (hw_reg_part)(HW_B23_##x+HW_hb23_##x), \
HW_W24_##x = (hw_reg_part)(HW_B24_##x+HW_hb24_##x), \
HW_W25_##x = (hw_reg_part)(HW_B25_##x+HW_hb25_##x), \
HW_W26_##x = (hw_reg_part)(HW_B26_##x+HW_hb26_##x), \
HW_W27_##x = (hw_reg_part)(HW_B27_##x+HW_hb27_##x), \
HW_W28_##x = (hw_reg_part)(HW_B28_##x+HW_hb28_##x), \
HW_W29_##x = (hw_reg_part)(HW_B29_##x+HW_hb29_##x), \
HW_W30_##x = (hw_reg_part)(HW_B30_##x+HW_hb30_##x), \
HW_W31_##x = (hw_reg_part)(HW_B31_##x+HW_hb31_##x), \
\
/* doubleword sized registers (word in MIPS parlance) */ \
HW_D0_##x = (hw_reg_part)(HW_W0_##x+HW_hw0_##x), \
HW_D1_##x = (hw_reg_part)(HW_W1_##x+HW_hw1_##x), \
HW_D2_##x = (hw_reg_part)(HW_W2_##x+HW_hw2_##x), \
HW_D3_##x = (hw_reg_part)(HW_W3_##x+HW_hw3_##x), \
HW_D4_##x = (hw_reg_part)(HW_W4_##x+HW_hw4_##x), \
HW_D5_##x = (hw_reg_part)(HW_W5_##x+HW_hw5_##x), \
HW_D6_##x = (hw_reg_part)(HW_W6_##x+HW_hw6_##x), \
HW_D7_##x = (hw_reg_part)(HW_W7_##x+HW_hw7_##x), \
HW_D8_##x = (hw_reg_part)(HW_W8_##x+HW_hw8_##x), \
HW_D9_##x = (hw_reg_part)(HW_W9_##x+HW_hw9_##x), \
HW_D10_##x = (hw_reg_part)(HW_W10_##x+HW_hw10_##x), \
HW_D11_##x = (hw_reg_part)(HW_W11_##x+HW_hw11_##x), \
HW_D12_##x = (hw_reg_part)(HW_W12_##x+HW_hw12_##x), \
HW_D13_##x = (hw_reg_part)(HW_W13_##x+HW_hw13_##x), \
HW_D14_##x = (hw_reg_part)(HW_W14_##x+HW_hw14_##x), \
HW_D15_##x = (hw_reg_part)(HW_W15_##x+HW_hw15_##x), \
HW_D16_##x = (hw_reg_part)(HW_W16_##x+HW_hw16_##x), \
HW_D17_##x = (hw_reg_part)(HW_W17_##x+HW_hw17_##x), \
HW_D18_##x = (hw_reg_part)(HW_W18_##x+HW_hw18_##x), \
HW_D19_##x = (hw_reg_part)(HW_W19_##x+HW_hw19_##x), \
HW_D20_##x = (hw_reg_part)(HW_W20_##x+HW_hw20_##x), \
HW_D21_##x = (hw_reg_part)(HW_W21_##x+HW_hw21_##x), \
HW_D22_##x = (hw_reg_part)(HW_W22_##x+HW_hw22_##x), \
HW_D23_##x = (hw_reg_part)(HW_W23_##x+HW_hw23_##x), \
HW_D24_##x = (hw_reg_part)(HW_W24_##x+HW_hw24_##x), \
HW_D25_##x = (hw_reg_part)(HW_W25_##x+HW_hw25_##x), \
HW_D26_##x = (hw_reg_part)(HW_W26_##x+HW_hw26_##x), \
HW_D27_##x = (hw_reg_part)(HW_W27_##x+HW_hw27_##x), \
HW_D28_##x = (hw_reg_part)(HW_W28_##x+HW_hw28_##x), \
HW_D29_##x = (hw_reg_part)(HW_W29_##x+HW_hw29_##x), \
HW_D30_##x = (hw_reg_part)(HW_W30_##x+HW_hw30_##x), \
HW_D31_##x = (hw_reg_part)(HW_W31_##x+HW_hw31_##x), \
\
/* quadword sized registers (doubleword in MIPS parlance) */ \
HW_Q2_##x = (hw_reg_part)(HW_D2_##x+HW_D3_##x), \
HW_Q4_##x = (hw_reg_part)(HW_D4_##x+HW_D5_##x), \
HW_Q6_##x = (hw_reg_part)(HW_D6_##x+HW_D7_##x), \
HW_Q8_##x = (hw_reg_part)(HW_D8_##x+HW_D9_##x), \
HW_Q10_##x = (hw_reg_part)(HW_D10_##x+HW_D11_##x), \
HW_Q12_##x = (hw_reg_part)(HW_D12_##x+HW_D13_##x), \
HW_Q14_##x = (hw_reg_part)(HW_D14_##x+HW_D15_##x), \
HW_Q16_##x = (hw_reg_part)(HW_D16_##x+HW_D17_##x), \
HW_Q18_##x = (hw_reg_part)(HW_D18_##x+HW_D19_##x), \
HW_Q20_##x = (hw_reg_part)(HW_D20_##x+HW_D21_##x), \
HW_Q22_##x = (hw_reg_part)(HW_D22_##x+HW_D23_##x), \
HW_Q24_##x = (hw_reg_part)(HW_D12_##x+HW_D25_##x), \
\
HW_R0_##x = (hw_reg_part)(HW_W0_##x+HW_hw0_##x), \
HW_R1_##x = (hw_reg_part)(HW_W1_##x+HW_hw1_##x), \
HW_R2_##x = (hw_reg_part)(HW_W2_##x+HW_hw2_##x), \
HW_R3_##x = (hw_reg_part)(HW_W3_##x+HW_hw3_##x), \
HW_R4_##x = (hw_reg_part)(HW_W4_##x+HW_hw4_##x), \
HW_R5_##x = (hw_reg_part)(HW_W5_##x+HW_hw5_##x), \
HW_R6_##x = (hw_reg_part)(HW_W6_##x+HW_hw6_##x), \
HW_R7_##x = (hw_reg_part)(HW_W7_##x+HW_hw7_##x), \
HW_R8_##x = (hw_reg_part)(HW_W8_##x+HW_hw8_##x), \
HW_R9_##x = (hw_reg_part)(HW_W9_##x+HW_hw9_##x), \
HW_R10_##x = (hw_reg_part)(HW_W10_##x+HW_hw10_##x), \
HW_R11_##x = (hw_reg_part)(HW_W11_##x+HW_hw11_##x), \
HW_R12_##x = (hw_reg_part)(HW_W12_##x+HW_hw12_##x), \
HW_R13_##x = (hw_reg_part)(HW_W13_##x+HW_hw13_##x), \
HW_R14_##x = (hw_reg_part)(HW_W14_##x+HW_hw14_##x), \
HW_R15_##x = (hw_reg_part)(HW_W15_##x+HW_hw15_##x), \
HW_R16_##x = (hw_reg_part)(HW_W16_##x+HW_hw16_##x), \
HW_R17_##x = (hw_reg_part)(HW_W17_##x+HW_hw17_##x), \
HW_R18_##x = (hw_reg_part)(HW_W18_##x+HW_hw18_##x), \
HW_R19_##x = (hw_reg_part)(HW_W19_##x+HW_hw19_##x), \
HW_R20_##x = (hw_reg_part)(HW_W20_##x+HW_hw20_##x), \
HW_R21_##x = (hw_reg_part)(HW_W21_##x+HW_hw21_##x), \
HW_R22_##x = (hw_reg_part)(HW_W22_##x+HW_hw22_##x), \
HW_R23_##x = (hw_reg_part)(HW_W23_##x+HW_hw23_##x), \
HW_R24_##x = (hw_reg_part)(HW_W24_##x+HW_hw24_##x), \
HW_R25_##x = (hw_reg_part)(HW_W25_##x+HW_hw25_##x), \
HW_R26_##x = (hw_reg_part)(HW_W26_##x+HW_hw26_##x), \
HW_R27_##x = (hw_reg_part)(HW_W27_##x+HW_hw27_##x), \
HW_R28_##x = (hw_reg_part)(HW_W28_##x+HW_hw28_##x), \
HW_R29_##x = (hw_reg_part)(HW_W29_##x+HW_hw29_##x), \
HW_R30_##x = (hw_reg_part)(HW_W30_##x+HW_hw30_##x), \
HW_R31_##x = (hw_reg_part)(HW_W31_##x+HW_hw31_##x), \
\
/* double precision floating point registers */ \
HW_FD0_##x = (hw_reg_part)(HW_F0_##x+HW_F1_##x), \
HW_FD2_##x = (hw_reg_part)(HW_F2_##x+HW_F3_##x), \
HW_FD4_##x = (hw_reg_part)(HW_F4_##x+HW_F5_##x), \
HW_FD6_##x = (hw_reg_part)(HW_F6_##x+HW_F7_##x), \
HW_FD8_##x = (hw_reg_part)(HW_F8_##x+HW_F9_##x), \
HW_FD10_##x = (hw_reg_part)(HW_F10_##x+HW_F11_##x), \
HW_FD12_##x = (hw_reg_part)(HW_F12_##x+HW_F13_##x), \
HW_FD14_##x = (hw_reg_part)(HW_F14_##x+HW_F15_##x), \
HW_FD16_##x = (hw_reg_part)(HW_F16_##x+HW_F17_##x), \
HW_FD18_##x = (hw_reg_part)(HW_F18_##x+HW_F19_##x), \
HW_FD20_##x = (hw_reg_part)(HW_F20_##x+HW_F21_##x), \
HW_FD22_##x = (hw_reg_part)(HW_F22_##x+HW_F23_##x), \
HW_FD24_##x = (hw_reg_part)(HW_F24_##x+HW_F25_##x), \
HW_FD26_##x = (hw_reg_part)(HW_F26_##x+HW_F27_##x), \
HW_FD28_##x = (hw_reg_part)(HW_F28_##x+HW_F29_##x), \
HW_FD30_##x = (hw_reg_part)(HW_F30_##x+HW_F31_##x), \
\
\
HW_QREGS_##x = (hw_reg_part)(HW_Q2_##x+HW_Q4_##x+HW_Q6_##x+HW_Q8_##x+\
HW_Q10_##x+HW_Q12_##x+HW_Q14_##x+HW_Q16_##x+HW_Q18_##x+ \
HW_Q20_##x+HW_Q22_##x+HW_Q24_##x ), \
\
HW_DREGS_##x = (hw_reg_part)(HW_D0_##x+HW_D1_##x+HW_D2_##x+HW_D3_##x+\
HW_D4_##x+HW_D5_##x+HW_D6_##x+HW_D7_##x+HW_D8_##x+HW_D9_##x+\
HW_D10_##x+HW_D11_##x+HW_D12_##x+HW_D13_##x+HW_D14_##x+HW_D15_##x+\
HW_D16_##x+HW_D17_##x+HW_D18_##x+HW_D19_##x+HW_D20_##x+HW_D21_##x+\
HW_D22_##x+HW_D23_##x+HW_D24_##x+HW_D25_##x+HW_D26_##x+HW_D27_##x+\
HW_D28_##x+HW_D29_##x+HW_D30_##x ), \
\
HW_WREGS_##x = (hw_reg_part)(HW_W0_##x+HW_W1_##x+HW_W2_##x+HW_W3_##x+\
HW_W4_##x+HW_W5_##x+HW_W6_##x+HW_W7_##x+HW_W8_##x+HW_W9_##x+\
HW_W10_##x+HW_W11_##x+HW_W12_##x+HW_W13_##x+HW_W14_##x+HW_W15_##x+\
HW_W16_##x+HW_W17_##x+HW_W18_##x+HW_W19_##x+HW_W20_##x+HW_W21_##x+\
HW_W22_##x+HW_W23_##x+HW_W24_##x+HW_W25_##x+HW_W26_##x+HW_W27_##x+\
HW_W28_##x+HW_W29_##x+HW_W30_##x ), \
\
HW_BREGS_##x = (hw_reg_part)(HW_B0_##x+HW_B1_##x+HW_B2_##x+HW_B3_##x+\
HW_B4_##x+HW_B5_##x+HW_B6_##x+HW_B7_##x+HW_B8_##x+HW_B9_##x+\
HW_B10_##x+HW_B11_##x+HW_B12_##x+HW_B13_##x+HW_B14_##x+HW_B15_##x+\
HW_B16_##x+HW_B17_##x+HW_B18_##x+HW_B19_##x+HW_B20_##x+HW_B21_##x+\
HW_B22_##x+HW_B23_##x+HW_B24_##x+HW_B25_##x+HW_B26_##x+HW_B27_##x+\
HW_B28_##x+HW_B29_##x+HW_B30_##x ), \
\
HW_FPR_##x = (hw_reg_part)(HW_F0_##x+HW_F1_##x+HW_F2_##x+HW_F3_##x+\
HW_F4_##x+HW_F5_##x+HW_F6_##x+HW_F7_##x+HW_F8_##x+HW_F9_##x+\
HW_F10_##x+HW_F11_##x+HW_F12_##x+HW_F13_##x+HW_F14_##x+HW_F15_##x+\
HW_F16_##x+HW_F17_##x+HW_F18_##x+HW_F19_##x+HW_F20_##x+HW_F21_##x+\
HW_F22_##x+HW_F23_##x+HW_F24_##x+HW_F25_##x+HW_F26_##x+HW_F27_##x+\
HW_F28_##x+HW_F29_##x+HW_F30_##x+HW_F31_##x ), \
\
HW_DFPR_##x = (hw_reg_part)(HW_FD0_##x+HW_FD2_##x+HW_FD4_##x+HW_FD6_##x+\
HW_FD8_##x+HW_FD10_##x+HW_FD12_##x+HW_FD14_##x+HW_FD16_##x+HW_FD18_##x+\
HW_FD20_##x+HW_FD22_##x+HW_FD24_##x+HW_FD26_##x+HW_F28_##x+HW_F30_##x ),\
\
HW__COMPOUND_END_##x \
}
HW_ITER( HW_DEFINE_COMPOUND );
HW_DEFINE_GLOBAL_CONST( HW_EMPTY );
HW_DEFINE_GLOBAL_CONST( HW_R0 );
HW_DEFINE_GLOBAL_CONST( HW_R1 );
HW_DEFINE_GLOBAL_CONST( HW_R2 );
HW_DEFINE_GLOBAL_CONST( HW_R3 );
HW_DEFINE_GLOBAL_CONST( HW_R4 );
HW_DEFINE_GLOBAL_CONST( HW_R5 );
HW_DEFINE_GLOBAL_CONST( HW_R6 );
HW_DEFINE_GLOBAL_CONST( HW_R7 );
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?