⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opclasses.h

📁 GNU binutils是GNU交叉工具链中的一个源码包
💻 H
📖 第 1 页 / 共 4 页
字号:
/* B7: Limited 2-operand float store operation   Syntax: <i> src, dst       src = Register 0-11 (r)       dst = Direct (@), Indirect (*)   Instr: 2/0 - STF, STFI*/#define B7_CLASS(name, level) \  .ifdef level                    &\name##_B7:                        &\  name  R0, @start      /* r,@ */ &\  name  R0, *+AR0(5)    /* r,* */ &\  .endif/* D: Decrement and brach operations   Syntax: <i>c ARn, dst       c   = condition       ARn = AR register 0-7 (A)       dst = Register (Q), PC-relative (P)   Instr: 2/0 - DBc, DBcD   Alias: <namea> <nameb>*/#define D_CLASS(namea, nameb, level) \  .ifdef level                    &\namea##_D:                        &\  namea  AR0, R0        /* A,Q */ &\  namea  AR0, start     /* A,P */ &\nameb##_D:                        &\  nameb  AR0, R0        /* A,Q */ &\  nameb  AR0, start     /* A,P */ &\  .endif/* J: General conditional branch operations   Syntax: <i>c dst       c   = Condition       dst = Register (Q), PC-relative (P)   Instr: 2/3 - Bc, BcD, C4x: BcAF, BcAT, LAJc   Alias: <namea> <nameb>*/#define J_CLASS(namea, nameb, level) \  .ifdef level                    &\namea##_J:                        &\  namea  R0               /* Q */ &\  namea  start            /* P */ &\nameb##_J:                        &\  nameb  R0               /* Q */ &\  nameb  start            /* P */ &\  .endif/* LL: Load-load parallell operation   Syntax: <i> src2, dst2 || <i> src1, dst1       src1 = Indirect 0,1,IR0,IR1 (J)       dst1 = Register 0-7 (K)       src2 = Indirect 0,1,IR0,IR1, ENH: Register (i)       dst2 = Register 0-7 (L)   Instr: 2/0 - LDF||LDF, LDI||LDI   Alias: i||i, i1||i2, i2||i1*/#define LL_CLASS(name, level) \  .ifdef level                                                      &\name##_LL:                                                          &\  name     *+AR0(1), R0  &||  name     *+AR1(1), R1   /* i;L|J,K */ &\  name##2  *+AR0(1), R0  &||  name##1  *+AR1(1), R1   /* i;L|J,K */ &\  name##1  *+AR1(1), R1  &||  name##2  *+AR0(1), R0   /* J,K|i;L */ &\  .endif                                                            &\  .ifdef TEST_ENH                                                   &\name##_LL_enh:                                                      &\  name     R0, R0        &||  name     *+AR1(1), R1   /* i;L|J,K */ &\  name     R0            &||  name     *+AR1(1), R1   /* i;L|J,K */ &\  name##2  R0, R0        &||  name##1  *+AR1(1), R1   /* i;L|J,K */ &\  name##2  R0            &||  name##1  *+AR1(1), R1   /* i;L|J,K */ &\  name##1  *+AR1(1), R1  &||  name##2  R0, R0         /* J,K|i;L */ &\  name##1  *+AR1(1), R1  &||  name##2  R0             /* J,K|i;L */ &\  .endif/* LS: Store-store parallell operation   Syntax: <i> src2, dst2 || <i> src1, dst1       src1 = Register 0-7 (H)       dst1 = Indirect 0,1,IR0,IR1 (J)       src2 = Register 0-7 (L)       dst2 = Indirect 0,1,IR0,IR1, ENH: register (i)   Instr: 2/0 - STF||STF, STI||STI   Alias: i||i, i1||i2, i2||i1.*/#define LS_CLASS(name, level) \  .ifdef level                                                      &\name##_LS:                                                          &\  name     R0, *+AR0(1)  &||  name     R1, *+AR1(1)   /* L;i|H,J */ &\  name##2  R0, *+AR0(1)  &||  name##1  R1, *+AR1(1)   /* L;i|H,J */ &\  name##1  R1, *+AR1(1)  &||  name##2  R0, *+AR0(1)   /* H,J|L;i */ &\  .endif                                                            &\  .ifdef TEST_ENH                                                   &\name##_LS_enh:                                                      &\  name     R0, R0        &||  name     R1, *+AR1(1)   /* L;i|H,J */ &\  name     R0            &||  name     R1, *+AR1(1)   /* L;i|H,J */ &\  name##2  R0, R0        &||  name##1  R1, *+AR1(1)   /* L;i|H,J */ &\  name##2  R0            &||  name##1  R1, *+AR1(1)   /* L;i|H,J */ &\  name##1  R1, *+AR1(1)  &||  name##2  R0, R0         /* H,J|L;i */ &\  name##1  R1, *+AR1(1)  &||  name##2  R0             /* H,J|L;i */ &\  .endif/* M: General multiply and add/sub operations   Syntax: <ia> src3,src4,dst1 || <ib> src2,src1,dst2 [00] - Manual           <ia> src3,src1,dst1 || <ib> src2,src4,dst2 [01] - Manual           <ia> src1,src3,dst1 || <ib> src2,src4,dst2 [01]           <ia> src1,src2,dst1 || <ib> src4,src3,dst2 [02] - Manual           <ia> src3,src1,dst1 || <ib> src4,src2,dst2 [03] - Manual           <ia> src1,src3,dst1 || <ib> src4,src2,dst2 [03]       src1 = Register 0-7 (K)       src2 = Register 0-7 (H)       src3 = Indirect 0,1,IR0,IR1, ENH: register (j)       src4 = Indirect 0,1,IR0,IR1, ENH: register (i)       dst1 = Register 0-1 (N)       dst2 = Register 2-3 (M)   Instr: 4/0 - MPYF3||ADDF3, MPYF3||SUBF3, MPYI3||ADDI3, MPYI3||SUBI3   Alias: a||b, a3||n, a||b3, a3||b3, b||a, b3||a, b||a3, b3||a3*/#define M_CLASS(namea, nameb, level) \  .ifdef level                                                                                &\namea##_##nameb##_M:                                                                          &\  namea     *+AR0(1), *+AR1(1), R0  &||  nameb     R0, R1, R2               /* i;j;N|H;K;M */ &\  namea     *+AR0(1), *+AR1(1), R0  &||  nameb     R0, R2                   /* i;j;N|H;K;M */ &\  namea     *+AR0(1), R0, R0        &||  nameb     R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea     *+AR0(1), R0            &||  nameb     R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea     R0, *+AR0(1), R0        &||  nameb     R0, *+AR1(1), R2         /* K;j;N|H;i;M */ &\  namea     R2, R1, R0              &||  nameb     *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea     R2, R0                  &||  nameb     *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea     *+AR0(1), R1, R0        &||  nameb     *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea     *+AR0(1), R0            &||  nameb     *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea     *+AR0(1), R1, R0        &||  nameb     *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea     *+AR0(1), R0            &||  nameb     *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea     R0, *+AR0(1), R0        &||  nameb     *+AR1(1), R0, R2         /* K;j;N|i;H;M */ &\  namea     R0, *+AR0(1), R0        &||  nameb     *+AR1(1), R2             /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef TEST_ENH                                                                             &\namea##_##nameb##_M_enh:                                                                      &\  namea     R0, R0, R0              &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     R0, R0                  &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     R0                      &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     R0, R0                  &||  nameb     R2, R2                   /* i;j;N|H;K;M */ &\  namea     R0                      &||  nameb     R2, R2                   /* i;j;N|H;K;M */ &\  namea     R0                      &||  nameb     R2                       /* i;j;N|H;K;M */ &\  namea     AR0, AR0, R0            &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     AR0, R0, R0             &||  nameb     R0, AR0, R2              /* j;K;N|H;i;M */ &\  namea     R0, AR0, R0             &||  nameb     R0, AR0, R2              /* K;j;N|H;i;M */ &\  namea     R2, R1, R0              &||  nameb     AR0, AR1, R2             /* H;K;N|i;j;M */ &\  namea     AR0, R1, R0             &||  nameb     AR0, R3, R2              /* j;K;N|i;H;M */ &\  namea     R0, AR0, R0             &||  nameb     AR0, R0, R2              /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef level                                                                                &\namea##3_##nameb##_M:                                                                         &\  namea##3  *+AR0(1), *+AR1(1), R0  &||  nameb     R0, R1, R2               /* i;j;N|H;K;M */ &\  namea##3  *+AR0(1), *+AR1(1), R0  &||  nameb     R0, R2                   /* i;j;N|H;K;M */ &\  namea##3  *+AR0(1), R0, R0        &||  nameb     R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea##3  *+AR0(1), R0            &||  nameb     R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea##3  R0, *+AR0(1), R0        &||  nameb     R0, *+AR1(1), R2         /* K;j;N|H;i;M */ &\  namea##3  R2, R1, R0              &||  nameb     *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea##3  R2, R0                  &||  nameb     *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea##3  *+AR0(1), R1, R0        &||  nameb     *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea##3  *+AR0(1), R0            &||  nameb     *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea##3  *+AR0(1), R1, R0        &||  nameb     *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea##3  *+AR0(1), R0            &||  nameb     *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea##3  R0, *+AR0(1), R0        &||  nameb     *+AR1(1), R0, R2         /* K;j;N|i;H;M */ &\  namea##3  R0, *+AR0(1), R0        &||  nameb     *+AR1(1), R2             /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef TEST_ENH                                                                             &\namea##3_##nameb##_M_enh:                                                                     &\  namea##3  R0, R0, R0              &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  R0, R0                  &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  R0                      &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  R0, R0                  &||  nameb     R2, R2                   /* i;j;N|H;K;M */ &\  namea##3  R0                      &||  nameb     R2, R2                   /* i;j;N|H;K;M */ &\  namea##3  R0                      &||  nameb     R2                       /* i;j;N|H;K;M */ &\  namea##3  AR0, AR0, R0            &||  nameb     R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  AR0, R0, R0             &||  nameb     R0, AR0, R2              /* j;K;N|H;i;M */ &\  namea##3  R0, AR0, R0             &||  nameb     R0, AR0, R2              /* K;j;N|H;i;M */ &\  namea##3  R2, R1, R0              &||  nameb     AR0, AR1, R2             /* H;K;N|i;j;M */ &\  namea##3  AR0, R1, R0             &||  nameb     AR0, R3, R2              /* j;K;N|i;H;M */ &\  namea##3  R0, AR0, R0             &||  nameb     AR0, R0, R2              /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef level                                                                                &\namea##_##nameb##3_M:                                                                         &\  namea     *+AR0(1), *+AR1(1), R0  &||  nameb##3  R0, R1, R2               /* i;j;N|H;K;M */ &\  namea     *+AR0(1), *+AR1(1), R0  &||  nameb##3  R0, R2                   /* i;j;N|H;K;M */ &\  namea     *+AR0(1), R0, R0        &||  nameb##3  R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea     *+AR0(1), R0            &||  nameb##3  R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea     R0, *+AR0(1), R0        &||  nameb##3  R0, *+AR1(1), R2         /* K;j;N|H;i;M */ &\  namea     R2, R1, R0              &||  nameb##3  *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea     R2, R0                  &||  nameb##3  *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea     *+AR0(1), R1, R0        &||  nameb##3  *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea     *+AR0(1), R0            &||  nameb##3  *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea     *+AR0(1), R1, R0        &||  nameb##3  *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea     *+AR0(1), R0            &||  nameb##3  *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea     R0, *+AR0(1), R0        &||  nameb##3  *+AR1(1), R0, R2         /* K;j;N|i;H;M */ &\  namea     R0, *+AR0(1), R0        &||  nameb##3  *+AR1(1), R2             /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef TEST_ENH                                                                             &\namea##_##nameb##3_M_enh:                                                                     &\  namea     R0, R0, R0              &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     R0, R0                  &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     R0                      &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     R0, R0                  &||  nameb##3  R2, R2                   /* i;j;N|H;K;M */ &\  namea     R0                      &||  nameb##3  R2, R2                   /* i;j;N|H;K;M */ &\  namea     R0                      &||  nameb##3  R2                       /* i;j;N|H;K;M */ &\  namea     AR0, AR0, R0            &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea     AR0, R0, R0             &||  nameb##3  R0, AR0, R2              /* j;K;N|H;i;M */ &\  namea     R0, AR0, R0             &||  nameb##3  R0, AR0, R2              /* K;j;N|H;i;M */ &\  namea     R2, R1, R0              &||  nameb##3  AR0, AR1, R2             /* H;K;N|i;j;M */ &\  namea     AR0, R1, R0             &||  nameb##3  AR0, R3, R2              /* j;K;N|i;H;M */ &\  namea     R0, AR0, R0             &||  nameb##3  AR0, R0, R2              /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef level                                                                                &\namea##3_##nameb##3_M:                                                                        &\  namea##3  *+AR0(1), *+AR1(1), R0  &||  nameb##3  R0, R1, R2               /* i;j;N|H;K;M */ &\  namea##3  *+AR0(1), *+AR1(1), R0  &||  nameb##3  R0, R2                   /* i;j;N|H;K;M */ &\  namea##3  *+AR0(1), R0, R0        &||  nameb##3  R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea##3  *+AR0(1), R0            &||  nameb##3  R0, *+AR1(1), R2         /* j;K;N|H;i;M */ &\  namea##3  R0, *+AR0(1), R0        &||  nameb##3  R0, *+AR1(1), R2         /* K;j;N|H;i;M */ &\  namea##3  R2, R1, R0              &||  nameb##3  *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea##3  R2, R0                  &||  nameb##3  *+AR0(1), *+AR1(1), R2   /* H;K;N|i;j;M */ &\  namea##3  *+AR0(1), R1, R0        &||  nameb##3  *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea##3  *+AR0(1), R0            &||  nameb##3  *+AR1(1), R3, R2         /* j;K;N|i;H;M */ &\  namea##3  *+AR0(1), R1, R0        &||  nameb##3  *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea##3  *+AR0(1), R0            &||  nameb##3  *+AR1(1), R2             /* j;K;N|i;H;M */ &\  namea##3  R0, *+AR0(1), R0        &||  nameb##3  *+AR1(1), R0, R2         /* K;j;N|i;H;M */ &\  namea##3  R0, *+AR0(1), R0        &||  nameb##3  *+AR1(1), R2             /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef TEST_ENH                                                                             &\namea##3_##nameb##3_M_enh:                                                                    &\  namea##3  R0, R0, R0              &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  R0, R0                  &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  R0                      &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  R0, R0                  &||  nameb##3  R2, R2                   /* i;j;N|H;K;M */ &\  namea##3  R0                      &||  nameb##3  R2, R2                   /* i;j;N|H;K;M */ &\  namea##3  R0                      &||  nameb##3  R2                       /* i;j;N|H;K;M */ &\  namea##3  AR0, AR0, R0            &||  nameb##3  R2, R2, R2               /* i;j;N|H;K;M */ &\  namea##3  AR0, R0, R0             &||  nameb##3  R0, AR0, R2              /* j;K;N|H;i;M */ &\  namea##3  R0, AR0, R0             &||  nameb##3  R0, AR0, R2              /* K;j;N|H;i;M */ &\  namea##3  R2, R1, R0              &||  nameb##3  AR0, AR1, R2             /* H;K;N|i;j;M */ &\  namea##3  AR0, R1, R0             &||  nameb##3  AR0, R3, R2              /* j;K;N|i;H;M */ &\  namea##3  R0, AR0, R0             &||  nameb##3  AR0, R0, R2              /* K;j;N|i;H;M */ &\  .endif                                                                                      &\  .ifdef level                                                                                &\nameb##_##namea##_M:                                                                          &\  nameb     R0, R1, R2              &||  namea     *+AR0(1), *+AR1(1), R0   /* H;K;M|i;j;N */ &\  nameb     R0, R2                  &||  namea     *+AR0(1), *+AR1(1), R0   /* H;K;M|i;j;N */ &\  nameb     R0, *+AR1(1), R2        &||  namea     *+AR0(1), R0, R0         /* H;i;M|j;K;N */ &\  nameb     R0, *+AR1(1), R2        &||  namea     *+AR0(1), R0             /* H;i;M|j;K;N */ &\  nameb     R0, *+AR1(1), R2        &||  namea     R0, *+AR0(1), R0         /* H;i;M|K;j;N */ &\  nameb     *+AR0(1), *+AR1(1), R2  &||  namea     R2, R1, R0               /* i;j;M|H;K;N */ &\  nameb     *+AR0(1), *+AR1(1), R2  &||  namea     R2, R0                   /* i;j;M|H;K;N */ &\  nameb     *+AR1(1), R3, R2        &||  namea     *+AR0(1), R1, R0         /* i;H;M|j;K;N */ &\  nameb     *+AR1(1), R3, R2        &||  namea     *+AR0(1), R0             /* i;H;M|j;K;N */ &\  nameb     *+AR1(1), R2            &||  namea     *+AR0(1), R1, R0         /* i;H;M|j;K;N */ &\  nameb     *+AR1(1), R2            &||  namea     *+AR0(1), R0             /* i;H;M|j;K;N */ &\  nameb     *+AR1(1), R0, R2        &||  namea     R0, *+AR0(1), R0         /* i;H;M|K;j;N */ &\  nameb     *+AR1(1), R2            &||  namea     R0, *+AR0(1), R0         /* i;H;M|K;j;N */ &\  .endif                                                                                      &\  .ifdef TEST_ENH                                                                             &\nameb##_##namea##_M_enh:                                                                      &\  nameb     R2, R2, R2              &||  namea     R0, R0, R0               /* H;K;M|i;j;N */ &\  nameb     R2, R2, R2              &||  namea     R0, R0                   /* H;K;M|i;j;N */ &\  nameb     R2, R2, R2              &||  namea     R0                       /* H;K;M|i;j;N */ &\  nameb     R2, R2                  &||  namea     R0, R0                   /* H;K;M|i;j;N */ &\  nameb     R2, R2                  &||  namea     R0                       /* H;K;M|i;j;N */ &\  nameb     R2                      &||  namea     R0                       /* H;K;M|i;j;N */ &\  nameb     R2, R2, R2              &||  namea     AR0, AR0, R0             /* H;K;M|i;j;N */ &\  nameb     R0, AR0, R2             &||  namea     AR0, R0, R0              /* H;i;M|j;K;N */ &\

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -