Annotation of frontvm/as68k/.test.s.fn.c, revision 1.1.1.1

1.1       root        1: static void __F26 ()
                      2: {
                      3:        Regs[0].s32 = 0;
                      4:        nZ = 0;
                      5:        N = 0 < 0;
                      6:        V = 0;
                      7:        C = 0;
                      8: }
                      9: static void __F30 ()
                     10: {
                     11:        Regs[0].s32 = 10;
                     12:        nZ = 10;
                     13:        N = 10 < 0;
                     14:        V = 0;
                     15:        C = 0;
                     16: }
                     17: static void __F32 ()
                     18: {
                     19:        Regs[1].s32 = 2;
                     20:        nZ = 2;
                     21:        N = 2 < 0;
                     22:        V = 0;
                     23:        C = 0;
                     24: }
                     25: static void __F34 ()
                     26: {
                     27:        u16 src = Regs[1].s16;
                     28:        u32 dest = (u16)Regs[0].s16;
                     29:        dest *= (u32)src;
                     30:        nZ = dest;
                     31:        N = ((s32)dest) < 0;
                     32:        C = V = 0;
                     33:        Regs[0].s32 = dest;
                     34: }
                     35: static void __F36 ()
                     36: {
                     37:        s16 src = Regs[1].s16;
                     38:        s32 dest = (s16)Regs[0].s16;
                     39:        dest *= (s32)src;
                     40:        nZ = dest;
                     41:        N = ((s32)dest) < 0;
                     42:        C = V = 0;
                     43:        Regs[0].s32 = dest;
                     44: }
                     45: static void __F38 ()
                     46: {
                     47:        u32 val = Regs[0].s32;
                     48: 
                     49:        s32 src = Regs[1].s32 & 63;
                     50:        if (src >= 32) {
                     51:                V = (val != 0);
                     52:                X = C = (src == 32 ? val & 1 : 0);
                     53:                val = 0;
                     54:        } else if (src == 0) {
                     55:                C = 0;
                     56:                V = 0;
                     57:        } else {
                     58:                u32 mask = (0xffffffff << (31 - src)) & 0xffffffff;
                     59:                V = (val & mask) != mask && (val & mask) != 0;
                     60:                val <<= src-1;
                     61:                C = X = (val & 0x80000000);
                     62:                val <<= 1;
                     63:                val &= 0xffffffff;
                     64:        }
                     65:        nZ = ((s32)(val)) != 0;
                     66:        N = ((s32)(val)) < 0;
                     67:        Regs[0].s32 = val;
                     68: }
                     69: static void __F3a ()
                     70: {
                     71:        u32 val = Regs[0].s32;
                     72: 
                     73:        s32 src = Regs[1].s32 & 63;
                     74:        u32 sign = (0x80000000 & val) >> 31;
                     75:        if (src >= 32) {
                     76:                val = 0xffffffff & (u32)-sign;
                     77:                X = C = sign;
                     78:        } else if (src == 0) {
                     79:                C = 0;
                     80:                V = 0;
                     81:        } else {
                     82:                val >>= src - 1;
                     83:                C = X = val & 1;
                     84:                val >>= 1;
                     85:                val |= (0xffffffff << (32 - src)) & (u32)-sign;
                     86:                val &= 0xffffffff;
                     87:        }
                     88:        nZ = ((s32)(val)) != 0;
                     89:        N = ((s32)(val)) < 0;
                     90:        Regs[0].s32 = val;
                     91: }
                     92: static void __F3c ()
                     93: {
                     94:        u32 val = Regs[0].s32;
                     95: 
                     96:        s32 shift = Regs[1].s32 & 63;
                     97:        if (shift >= 32) {
                     98:                X = C = (shift == 32 ? val & 1 : 0);
                     99:                val = 0;
                    100:        } else if (shift == 0) {
                    101:                C = 0;
                    102:                V = 0;
                    103:        } else {
                    104:                val <<= shift-1;
                    105:                C = X = (val & 0x80000000);
                    106:                val <<= 1;
                    107:                val &= 0xffffffff;
                    108:        }
                    109:        nZ = ((s32)(val)) != 0;
                    110:        N = ((s32)(val)) < 0;
                    111:        Regs[0].s32 = val;
                    112: }
                    113: static void __F3e ()
                    114: {
                    115:        u32 val = Regs[0].s32;
                    116: 
                    117:        s32 shift = Regs[1].s32 & 63;
                    118:        if (shift >= 32) {
                    119:                val = 0;
                    120:                X = C = (shift == 32) && (val >> 31);
                    121:        } else if (shift == 0) {
                    122:                C = 0;
                    123:                V = 0;
                    124:        } else {
                    125:                val >>= shift - 1;
                    126:                C = X = val & 1;
                    127:                val >>= 1;
                    128:        }
                    129:        nZ = ((s32)(val)) != 0;
                    130:        N = ((s32)(val)) < 0;
                    131:        Regs[0].s32 = val;
                    132: }
                    133: static void __F40 ()
                    134: {
                    135:        u32 val = (u32)Regs[0].s32;
                    136: 
                    137:        s32 cnt = Regs[1].s32 & 63;
                    138:        V = 0;
                    139:        u32 loval;
                    140:        cnt &= 31;
                    141:        loval = val >> (32 - cnt);
                    142:        val <<= cnt;
                    143:        val |= loval;
                    144:        val &= 0xffffffff;
                    145:        C = val & 1;
                    146:        nZ = val;
                    147:        N = ((s32)val) < 0;
                    148:        Regs[0].s32 = val;
                    149: }
                    150: static void __F42 ()
                    151: {
                    152:        u32 val = (u32)Regs[0].s32;
                    153: 
                    154:        s32 cnt = (Regs[1].s32 & 63) - 1;
                    155:        V = 0;
                    156:        u32 loval = val >> (31 - cnt);
                    157:        u32 carry = loval & 1;
                    158:        val = (((val << 1) | (X ? 1 : 0)) << cnt) | (loval >> 1);
                    159:        X = carry;
                    160:        val &= 0xffffffff;
                    161:        C = X;
                    162:        nZ = val;
                    163:        N = ((s32)val) < 0;
                    164:        Regs[0].s32 = val;
                    165: }
                    166: static void __F44 ()
                    167: {
                    168:        u32 src = Regs[1].s32;
                    169:        u32 dest = Regs[0].s32;
                    170:        src &= 31;
                    171:        nZ = !(1 ^ ((dest >> src) & 1));
                    172:        dest &= ~(1 << src);
                    173:        Regs[0].s32 = dest;
                    174: }
                    175: static void __F4e ()
                    176: {
                    177:        Regs[0].s32 = 0;
                    178:        nZ = 0;
                    179:        N = 0 < 0;
                    180:        V = 0;
                    181:        C = 0;
                    182: }
                    183: static void __F50 ()
                    184: {
                    185:        nZ = STMemory_ReadByte(Regs[8].s32);
                    186:        Regs[0].s8 = nZ;
                    187:        Regs[8].s32 += 1;
                    188:        N = nZ < 0;
                    189:        V = 0;
                    190:        C = 0;
                    191: }
                    192: static void __F5a ()
                    193: {
                    194:        nZ = 1048575;
                    195:        Regs[0].s32 = nZ;
                    196:        N = nZ < 0;
                    197:        V = 0;
                    198:        C = 0;
                    199: }
                    200: static void __F5c ()
                    201: {
                    202:        u16 src = Regs[1].s16;
                    203:        u32 dest = (u16)Regs[2].s16;
                    204:        dest *= (u32)src;
                    205:        nZ = dest;
                    206:        N = ((s32)dest) < 0;
                    207:        C = V = 0;
                    208:        Regs[2].s32 = dest;
                    209: }
                    210: static void __F5e ()
                    211: {
                    212:        s32 flgs, flgo, flgn, dest;
                    213:        dest = Regs[0].s32;
                    214: 
                    215:        nZ = (s32)dest - (s32)1;
                    216:        Regs[0].s32 = nZ;
                    217:        flgs = ((s32)1) < 0;
                    218:        flgo = ((s32)dest) < 0;
                    219:        flgn = ((s32)nZ) < 0;
                    220:        V = (flgs ^ flgo) & (flgn ^ flgo);
                    221:        C = ((s32)1) > ((s32)dest);
                    222:        X = C;
                    223:        N = (flgn != 0);
                    224: }
                    225: static void __F60 ()
                    226: {
                    227:        nZ = Regs[0].s32;
                    228:        N = nZ < 0;
                    229:        V = 0;
                    230:        C = 0;
                    231: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.