uncond.isa revision 7316
112752Sodanrc@yahoo.com.br// Copyright (c) 2010 ARM Limited
212752Sodanrc@yahoo.com.br// All rights reserved
312752Sodanrc@yahoo.com.br//
412752Sodanrc@yahoo.com.br// The license below extends only to copyright in the software and shall
512752Sodanrc@yahoo.com.br// not be construed as granting a license to any other intellectual
612752Sodanrc@yahoo.com.br// property including but not limited to intellectual property relating
712752Sodanrc@yahoo.com.br// to a hardware implementation of the functionality of the software
812752Sodanrc@yahoo.com.br// licensed hereunder.  You may use the software subject to the license
912752Sodanrc@yahoo.com.br// terms below provided that you ensure that this notice is replicated
1012752Sodanrc@yahoo.com.br// unmodified and in its entirety in all distributions of the software,
1112752Sodanrc@yahoo.com.br// modified or unmodified, in source code or in binary form.
1212752Sodanrc@yahoo.com.br//
1312752Sodanrc@yahoo.com.br// Redistribution and use in source and binary forms, with or without
1412752Sodanrc@yahoo.com.br// modification, are permitted provided that the following conditions are
1512752Sodanrc@yahoo.com.br// met: redistributions of source code must retain the above copyright
1612752Sodanrc@yahoo.com.br// notice, this list of conditions and the following disclaimer;
1712752Sodanrc@yahoo.com.br// redistributions in binary form must reproduce the above copyright
1812752Sodanrc@yahoo.com.br// notice, this list of conditions and the following disclaimer in the
1912752Sodanrc@yahoo.com.br// documentation and/or other materials provided with the distribution;
2012752Sodanrc@yahoo.com.br// neither the name of the copyright holders nor the names of its
2112752Sodanrc@yahoo.com.br// contributors may be used to endorse or promote products derived from
2212752Sodanrc@yahoo.com.br// this software without specific prior written permission.
2312752Sodanrc@yahoo.com.br//
2412752Sodanrc@yahoo.com.br// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2512752Sodanrc@yahoo.com.br// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2612752Sodanrc@yahoo.com.br// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2712752Sodanrc@yahoo.com.br// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2812752Sodanrc@yahoo.com.br// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2912752Sodanrc@yahoo.com.br// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
3012752Sodanrc@yahoo.com.br// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3112752Sodanrc@yahoo.com.br// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3212752Sodanrc@yahoo.com.br// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3312752Sodanrc@yahoo.com.br// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3412752Sodanrc@yahoo.com.br// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3512752Sodanrc@yahoo.com.br//
3612752Sodanrc@yahoo.com.br// Authors: Gabe Black
3712752Sodanrc@yahoo.com.br
3812752Sodanrc@yahoo.com.brdef format ArmUnconditional() {{
3912752Sodanrc@yahoo.com.br    decode_block = '''
4012752Sodanrc@yahoo.com.br    {
4112752Sodanrc@yahoo.com.br        const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 19, 16);
4212752Sodanrc@yahoo.com.br        const uint32_t op1 = bits(machInst, 27, 20);
4312752Sodanrc@yahoo.com.br        if (bits(op1, 7) == 0) {
4412752Sodanrc@yahoo.com.br            const uint32_t op2 = bits(machInst, 7, 4);
4512752Sodanrc@yahoo.com.br            if (op1 == 0x10) {
4612752Sodanrc@yahoo.com.br                if (bits((uint32_t)rn, 0) == 1 && op2 == 0) {
4712752Sodanrc@yahoo.com.br                    return new Setend(machInst, bits(machInst, 9));
4812752Sodanrc@yahoo.com.br                } else if (bits((uint32_t)rn, 0) == 0 && bits(op2, 1) == 0) {
4912752Sodanrc@yahoo.com.br                    const bool enable = bits(machInst, 19, 18) == 0x2;
5012752Sodanrc@yahoo.com.br                    const uint32_t mods = bits(machInst, 4, 0) |
5112752Sodanrc@yahoo.com.br                                          (bits(machInst, 8, 6) << 5) |
5212752Sodanrc@yahoo.com.br                                          (bits(machInst, 17) << 8) |
5312752Sodanrc@yahoo.com.br                                          ((enable ? 1 : 0) << 9);
5412752Sodanrc@yahoo.com.br                    return new Cps(machInst, mods);
5512752Sodanrc@yahoo.com.br                }
5612752Sodanrc@yahoo.com.br            } else if (bits(op1, 6, 5) == 0x1) {
5712752Sodanrc@yahoo.com.br                return new WarnUnimplemented(
5812752Sodanrc@yahoo.com.br                        "Advanced SIMD data-processing", machInst);
5912752Sodanrc@yahoo.com.br            } else if (bits(op1, 6, 4) == 0x4) {
6012752Sodanrc@yahoo.com.br                if (bits(op1, 0) == 0) {
6112752Sodanrc@yahoo.com.br                    return new WarnUnimplemented(
6212752Sodanrc@yahoo.com.br                            "Advanced SIMD element or structure load/store",
6312752Sodanrc@yahoo.com.br                            machInst);
6412752Sodanrc@yahoo.com.br                } else if (bits(op1, 2, 0) == 1) {
6512752Sodanrc@yahoo.com.br                    // Unallocated memory hint
6612752Sodanrc@yahoo.com.br                    return new NopInst(machInst);
6712752Sodanrc@yahoo.com.br                } else if (bits(op1, 2, 0) == 5) {
6812752Sodanrc@yahoo.com.br                    const bool add = bits(machInst, 23);
6912752Sodanrc@yahoo.com.br                    const uint32_t imm12 = bits(machInst, 11, 0);
7012752Sodanrc@yahoo.com.br                    if (add) {
7112752Sodanrc@yahoo.com.br                        return new %(pli_iadd)s(machInst, INTREG_ZERO,
7212752Sodanrc@yahoo.com.br                                                rn, add, imm12);
7312752Sodanrc@yahoo.com.br                    } else {
7412752Sodanrc@yahoo.com.br                        return new %(pli_isub)s(machInst, INTREG_ZERO,
7512752Sodanrc@yahoo.com.br                                                rn, add, imm12);
7612752Sodanrc@yahoo.com.br                    }
7712752Sodanrc@yahoo.com.br                }
7812752Sodanrc@yahoo.com.br            } else if (bits(op1, 6, 4) == 0x5) {
7912752Sodanrc@yahoo.com.br                if (bits(op1, 1, 0) == 0x1) {
8012752Sodanrc@yahoo.com.br                    const bool add = bits(machInst, 23);
8112752Sodanrc@yahoo.com.br                    const bool pldw = bits(machInst, 22);
8212752Sodanrc@yahoo.com.br                    const uint32_t imm12 = bits(machInst, 11, 0);
8312752Sodanrc@yahoo.com.br                    if (pldw) {
8412752Sodanrc@yahoo.com.br                        if (add) {
8512752Sodanrc@yahoo.com.br                            return new %(pldw_iadd)s(machInst, INTREG_ZERO,
8612752Sodanrc@yahoo.com.br                                                     rn, add, imm12);
8712752Sodanrc@yahoo.com.br                        } else {
8812752Sodanrc@yahoo.com.br                            return new %(pldw_isub)s(machInst, INTREG_ZERO,
8912752Sodanrc@yahoo.com.br                                                     rn, add, imm12);
9012752Sodanrc@yahoo.com.br                        }
9112752Sodanrc@yahoo.com.br                    } else {
9212752Sodanrc@yahoo.com.br                        if (add) {
9312752Sodanrc@yahoo.com.br                            return new %(pld_iadd)s(machInst, INTREG_ZERO,
9412752Sodanrc@yahoo.com.br                                                    rn, add, imm12);
9512752Sodanrc@yahoo.com.br                        } else {
9612752Sodanrc@yahoo.com.br                            return new %(pld_isub)s(machInst, INTREG_ZERO,
9712752Sodanrc@yahoo.com.br                                                    rn, add, imm12);
9812752Sodanrc@yahoo.com.br                        }
9912752Sodanrc@yahoo.com.br                    }
10012752Sodanrc@yahoo.com.br                } else if (op1 == 0x57) {
10112752Sodanrc@yahoo.com.br                    switch (op2) {
10212752Sodanrc@yahoo.com.br                      case 0x1:
10312752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("clrex", machInst);
10412752Sodanrc@yahoo.com.br                      case 0x4:
10512752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("dsb", machInst);
10612752Sodanrc@yahoo.com.br                      case 0x5:
10712752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("dmb", machInst);
10812752Sodanrc@yahoo.com.br                      case 0x6:
10912752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("isb", machInst);
11012752Sodanrc@yahoo.com.br                    }
11112752Sodanrc@yahoo.com.br                }
11212752Sodanrc@yahoo.com.br            } else if (bits(op2, 0) == 0) {
11312752Sodanrc@yahoo.com.br                switch (op1 & 0xf7) {
11412752Sodanrc@yahoo.com.br                  case 0x61:
11512752Sodanrc@yahoo.com.br                    // Unallocated memory hint
11612752Sodanrc@yahoo.com.br                    return new NopInst(machInst);
11712752Sodanrc@yahoo.com.br                  case 0x65:
11812752Sodanrc@yahoo.com.br                    {
11912752Sodanrc@yahoo.com.br                        const uint32_t imm5 = bits(machInst, 11, 7);
12012752Sodanrc@yahoo.com.br                        const uint32_t type = bits(machInst, 6, 5);
12112752Sodanrc@yahoo.com.br                        const bool add = bits(machInst, 23);
12212752Sodanrc@yahoo.com.br                        const IntRegIndex rm =
12312752Sodanrc@yahoo.com.br                            (IntRegIndex)(uint32_t)bits(machInst, 3, 0);
12412752Sodanrc@yahoo.com.br                        if (add) {
12512752Sodanrc@yahoo.com.br                            return new %(pli_radd)s(machInst, INTREG_ZERO, rn,
12612752Sodanrc@yahoo.com.br                                                    add, imm5, type, rm);
12712752Sodanrc@yahoo.com.br                        } else {
12812752Sodanrc@yahoo.com.br                            return new %(pli_rsub)s(machInst, INTREG_ZERO, rn,
12912752Sodanrc@yahoo.com.br                                                    add, imm5, type, rm);
13012752Sodanrc@yahoo.com.br                        }
13112752Sodanrc@yahoo.com.br                    }
13212752Sodanrc@yahoo.com.br                  case 0x71:
13312752Sodanrc@yahoo.com.br                  case 0x75:
13412752Sodanrc@yahoo.com.br                    {
13512752Sodanrc@yahoo.com.br                        const uint32_t imm5 = bits(machInst, 11, 7);
13612752Sodanrc@yahoo.com.br                        const uint32_t type = bits(machInst, 6, 5);
13712752Sodanrc@yahoo.com.br                        const bool add = bits(machInst, 23);
13812752Sodanrc@yahoo.com.br                        const bool pldw = bits(machInst, 22);
13912752Sodanrc@yahoo.com.br                        const IntRegIndex rm =
14012752Sodanrc@yahoo.com.br                            (IntRegIndex)(uint32_t)bits(machInst, 3, 0);
14112752Sodanrc@yahoo.com.br                        if (pldw) {
14212752Sodanrc@yahoo.com.br                            if (add) {
14312752Sodanrc@yahoo.com.br                                return new %(pldw_radd)s(machInst, INTREG_ZERO,
14412752Sodanrc@yahoo.com.br                                                         rn, add, imm5,
14512752Sodanrc@yahoo.com.br                                                         type, rm);
14612752Sodanrc@yahoo.com.br                            } else {
14712752Sodanrc@yahoo.com.br                                return new %(pldw_rsub)s(machInst, INTREG_ZERO,
14812752Sodanrc@yahoo.com.br                                                         rn, add, imm5,
14912752Sodanrc@yahoo.com.br                                                         type, rm);
15012752Sodanrc@yahoo.com.br                            }
15112752Sodanrc@yahoo.com.br                        } else {
15212752Sodanrc@yahoo.com.br                            if (add) {
15312752Sodanrc@yahoo.com.br                                return new %(pld_radd)s(machInst, INTREG_ZERO,
15412752Sodanrc@yahoo.com.br                                                        rn, add, imm5,
15512752Sodanrc@yahoo.com.br                                                        type, rm);
15612752Sodanrc@yahoo.com.br                            } else {
15712752Sodanrc@yahoo.com.br                                return new %(pld_rsub)s(machInst, INTREG_ZERO,
15812752Sodanrc@yahoo.com.br                                                        rn, add, imm5,
15912752Sodanrc@yahoo.com.br                                                        type, rm);
16012752Sodanrc@yahoo.com.br                            }
16112752Sodanrc@yahoo.com.br                        }
16212752Sodanrc@yahoo.com.br                    }
16312752Sodanrc@yahoo.com.br                }
16412752Sodanrc@yahoo.com.br            }
16512752Sodanrc@yahoo.com.br        } else {
16612752Sodanrc@yahoo.com.br            switch (bits(machInst, 26, 25)) {
16712752Sodanrc@yahoo.com.br              case 0x0:
16812752Sodanrc@yahoo.com.br                {
16912752Sodanrc@yahoo.com.br                    const uint32_t val = ((machInst >> 20) & 0x5);
17012752Sodanrc@yahoo.com.br                    if (val == 0x4) {
17112752Sodanrc@yahoo.com.br                        const uint32_t mode = bits(machInst, 4, 0);
17212752Sodanrc@yahoo.com.br                        switch (bits(machInst, 24, 21)) {
17312752Sodanrc@yahoo.com.br                          case 0x2:
17412752Sodanrc@yahoo.com.br                            return new %(srs)s(machInst, mode,
17512752Sodanrc@yahoo.com.br                                    SrsOp::DecrementAfter, false);
17612752Sodanrc@yahoo.com.br                          case 0x3:
17712752Sodanrc@yahoo.com.br                            return new %(srs_w)s(machInst, mode,
17812752Sodanrc@yahoo.com.br                                    SrsOp::DecrementAfter, true);
17912752Sodanrc@yahoo.com.br                          case 0x6:
18012752Sodanrc@yahoo.com.br                            return new %(srs_u)s(machInst, mode,
18112752Sodanrc@yahoo.com.br                                    SrsOp::IncrementAfter, false);
18212752Sodanrc@yahoo.com.br                          case 0x7:
18312752Sodanrc@yahoo.com.br                            return new %(srs_uw)s(machInst, mode,
18412752Sodanrc@yahoo.com.br                                    SrsOp::IncrementAfter, true);
18512752Sodanrc@yahoo.com.br                          case 0xa:
18612752Sodanrc@yahoo.com.br                            return new %(srs_p)s(machInst, mode,
18712752Sodanrc@yahoo.com.br                                    SrsOp::DecrementBefore, false);
18812752Sodanrc@yahoo.com.br                          case 0xb:
18912752Sodanrc@yahoo.com.br                            return new %(srs_pw)s(machInst, mode,
19012752Sodanrc@yahoo.com.br                                    SrsOp::DecrementBefore, true);
19112752Sodanrc@yahoo.com.br                          case 0xe:
19212752Sodanrc@yahoo.com.br                            return new %(srs_pu)s(machInst, mode,
19312752Sodanrc@yahoo.com.br                                    SrsOp::IncrementBefore, false);
19412752Sodanrc@yahoo.com.br                          case 0xf:
19512752Sodanrc@yahoo.com.br                            return new %(srs_puw)s(machInst, mode,
19612752Sodanrc@yahoo.com.br                                    SrsOp::IncrementBefore, true);
19713215Sodanrc@yahoo.com.br                        }
19813215Sodanrc@yahoo.com.br                        return new Unknown(machInst);
19913215Sodanrc@yahoo.com.br                    } else if (val == 0x1) {
20012752Sodanrc@yahoo.com.br                        switch (bits(machInst, 24, 21)) {
20113215Sodanrc@yahoo.com.br                          case 0x0:
20213215Sodanrc@yahoo.com.br                            return new %(rfe)s(machInst, rn,
20312752Sodanrc@yahoo.com.br                                    RfeOp::DecrementAfter, false);
20412752Sodanrc@yahoo.com.br                          case 0x1:
20512752Sodanrc@yahoo.com.br                            return new %(rfe_w)s(machInst, rn,
20612752Sodanrc@yahoo.com.br                                    RfeOp::DecrementAfter, true);
20712752Sodanrc@yahoo.com.br                          case 0x4:
20812752Sodanrc@yahoo.com.br                            return new %(rfe_u)s(machInst, rn,
20912752Sodanrc@yahoo.com.br                                    RfeOp::IncrementAfter, false);
21012752Sodanrc@yahoo.com.br                          case 0x5:
21112752Sodanrc@yahoo.com.br                            return new %(rfe_uw)s(machInst, rn,
21212752Sodanrc@yahoo.com.br                                    RfeOp::IncrementAfter, true);
21312752Sodanrc@yahoo.com.br                          case 0x8:
21412752Sodanrc@yahoo.com.br                            return new %(rfe_p)s(machInst, rn,
21512752Sodanrc@yahoo.com.br                                    RfeOp::DecrementBefore, false);
21612752Sodanrc@yahoo.com.br                          case 0x9:
21712752Sodanrc@yahoo.com.br                            return new %(rfe_pw)s(machInst, rn,
21812752Sodanrc@yahoo.com.br                                    RfeOp::DecrementBefore, true);
21912752Sodanrc@yahoo.com.br                          case 0xc:
22012752Sodanrc@yahoo.com.br                            return new %(rfe_pu)s(machInst, rn,
22112752Sodanrc@yahoo.com.br                                    RfeOp::IncrementBefore, false);
22212752Sodanrc@yahoo.com.br                          case 0xd:
22312752Sodanrc@yahoo.com.br                            return new %(rfe_puw)s(machInst, rn,
22412752Sodanrc@yahoo.com.br                                    RfeOp::IncrementBefore, true);
22512752Sodanrc@yahoo.com.br                        }
22612752Sodanrc@yahoo.com.br                        return new Unknown(machInst);
22712752Sodanrc@yahoo.com.br                    }
22812752Sodanrc@yahoo.com.br                }
22912752Sodanrc@yahoo.com.br                break;
23012752Sodanrc@yahoo.com.br              case 0x1:
23112752Sodanrc@yahoo.com.br                {
23212752Sodanrc@yahoo.com.br                    const uint32_t imm =
23312752Sodanrc@yahoo.com.br                        (sext<26>(bits(machInst, 23, 0) << 2)) |
23412752Sodanrc@yahoo.com.br                        (bits(machInst, 24) << 1);
23512752Sodanrc@yahoo.com.br                    return new BlxImm(machInst, imm);
23612752Sodanrc@yahoo.com.br                }
23712752Sodanrc@yahoo.com.br              case 0x2:
23812752Sodanrc@yahoo.com.br                if (bits(op1, 0) == 1) {
23912752Sodanrc@yahoo.com.br                    if (rn == INTREG_PC) {
24012752Sodanrc@yahoo.com.br                        if (bits(op1, 4, 3) != 0x0) {
24112752Sodanrc@yahoo.com.br                            return new WarnUnimplemented(
24212752Sodanrc@yahoo.com.br                                    "ldc, ldc2 (literal)", machInst);
24312752Sodanrc@yahoo.com.br                        }
24412752Sodanrc@yahoo.com.br                    } else {
24512752Sodanrc@yahoo.com.br                        if (op1 == 0xC3 || op1 == 0xC7) {
24612752Sodanrc@yahoo.com.br                            return new WarnUnimplemented(
24712752Sodanrc@yahoo.com.br                                    "ldc, ldc2 (immediate)", machInst);
24812752Sodanrc@yahoo.com.br                        }
24912752Sodanrc@yahoo.com.br                    }
25012752Sodanrc@yahoo.com.br                    if (op1 == 0xC5) {
25112752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("mrrc, mrrc2", machInst);
25212752Sodanrc@yahoo.com.br                    }
25312752Sodanrc@yahoo.com.br                } else {
25412752Sodanrc@yahoo.com.br                    if (bits(op1, 4, 3) != 0 || bits(op1, 1) == 1) {
25512752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("stc, stc2", machInst);
25612752Sodanrc@yahoo.com.br                    } else if (op1 == 0xC4) {
25712752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("mcrr, mcrrc", machInst);
25812752Sodanrc@yahoo.com.br                    }
25912752Sodanrc@yahoo.com.br                }
26012752Sodanrc@yahoo.com.br                break;
26112752Sodanrc@yahoo.com.br              case 0x3:
26212752Sodanrc@yahoo.com.br                {
26312752Sodanrc@yahoo.com.br                    const bool op = bits(machInst, 4);
26412752Sodanrc@yahoo.com.br                    if (op) {
26512752Sodanrc@yahoo.com.br                        if (bits(op1, 0)) {
26612752Sodanrc@yahoo.com.br                            return new WarnUnimplemented(
26712752Sodanrc@yahoo.com.br                                    "mrc, mrc2", machInst);
26812752Sodanrc@yahoo.com.br                        } else {
26912752Sodanrc@yahoo.com.br                            return new WarnUnimplemented(
27012752Sodanrc@yahoo.com.br                                    "mcr, mcr2", machInst);
27112752Sodanrc@yahoo.com.br                        }
27212752Sodanrc@yahoo.com.br                    } else {
27312752Sodanrc@yahoo.com.br                        return new WarnUnimplemented("cdp, cdp2", machInst);
27412752Sodanrc@yahoo.com.br                    }
27512752Sodanrc@yahoo.com.br                }
27612752Sodanrc@yahoo.com.br                break;
27712752Sodanrc@yahoo.com.br            }
27812752Sodanrc@yahoo.com.br        }
27912752Sodanrc@yahoo.com.br        return new Unknown(machInst);
28012752Sodanrc@yahoo.com.br    }
28112752Sodanrc@yahoo.com.br    ''' % {
28212752Sodanrc@yahoo.com.br        "pli_iadd" : "PLI_" + loadImmClassName(False, True, False, 1),
28312756Snikos.nikoleris@arm.com        "pli_isub" : "PLI_" + loadImmClassName(False, False, False, 1),
28412752Sodanrc@yahoo.com.br        "pld_iadd" : "PLD_" + loadImmClassName(False, True, False, 1),
28512752Sodanrc@yahoo.com.br        "pld_isub" : "PLD_" + loadImmClassName(False, False, False, 1),
28612752Sodanrc@yahoo.com.br        "pldw_iadd" : "PLDW_" + loadImmClassName(False, True, False, 1),
28712752Sodanrc@yahoo.com.br        "pldw_isub" : "PLDW_" + loadImmClassName(False, False, False, 1),
28812752Sodanrc@yahoo.com.br        "pli_radd" : "PLI_" + loadRegClassName(False, True, False, 1),
28912752Sodanrc@yahoo.com.br        "pli_rsub" : "PLI_" + loadRegClassName(False, False, False, 1),
29012752Sodanrc@yahoo.com.br        "pld_radd" : "PLD_" + loadRegClassName(False, True, False, 1),
29112752Sodanrc@yahoo.com.br        "pld_rsub" : "PLD_" + loadRegClassName(False, False, False, 1),
29212752Sodanrc@yahoo.com.br        "pldw_radd" : "PLDW_" + loadRegClassName(False, True, False, 1),
29312752Sodanrc@yahoo.com.br        "pldw_rsub" : "PLDW_" + loadRegClassName(False, False, False, 1),
29412752Sodanrc@yahoo.com.br        "rfe" : "RFE_" + loadImmClassName(True, False, False, 8),
29512752Sodanrc@yahoo.com.br        "rfe_w" : "RFE_" + loadImmClassName(True, False, True, 8),
29612752Sodanrc@yahoo.com.br        "rfe_u" : "RFE_" + loadImmClassName(True, True, False, 8),
29712752Sodanrc@yahoo.com.br        "rfe_uw" : "RFE_" + loadImmClassName(True, True, True, 8),
29812752Sodanrc@yahoo.com.br        "rfe_p" : "RFE_" + loadImmClassName(False, False, False, 8),
29912752Sodanrc@yahoo.com.br        "rfe_pw" : "RFE_" + loadImmClassName(False, False, True, 8),
30012752Sodanrc@yahoo.com.br        "rfe_pu" : "RFE_" + loadImmClassName(False, True, False, 8),
30112756Snikos.nikoleris@arm.com        "rfe_puw" : "RFE_" + loadImmClassName(False, True, True, 8),
30212752Sodanrc@yahoo.com.br        "srs" : "SRS_" + storeImmClassName(True, False, False, 8),
30312752Sodanrc@yahoo.com.br        "srs_w" : "SRS_" + storeImmClassName(True, False, True, 8),
30412752Sodanrc@yahoo.com.br        "srs_u" : "SRS_" + storeImmClassName(True, True, False, 8),
30512752Sodanrc@yahoo.com.br        "srs_uw" : "SRS_" + storeImmClassName(True, True, True, 8),
30612752Sodanrc@yahoo.com.br        "srs_p" : "SRS_" + storeImmClassName(False, False, False, 8),
30712752Sodanrc@yahoo.com.br        "srs_pw" : "SRS_" + storeImmClassName(False, False, True, 8),
30812752Sodanrc@yahoo.com.br        "srs_pu" : "SRS_" + storeImmClassName(False, True, False, 8),
30912752Sodanrc@yahoo.com.br        "srs_puw" : "SRS_" + storeImmClassName(False, True, True, 8)
31012752Sodanrc@yahoo.com.br    };
31112752Sodanrc@yahoo.com.br}};
31212752Sodanrc@yahoo.com.br