trunk/src/emu/cpu/arcompact/arcompact_execute.c
| r242546 | r242547 | |
| 1260 | 1260 | } |
| 1261 | 1261 | |
| 1262 | 1262 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_02(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BRLT"); } |
| 1263 | | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_03(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BRGE"); } |
| 1263 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_03(OPS_32) // register - register BRGE |
| 1264 | { |
| 1265 | BR_REGREG_SETUP |
| 1266 | |
| 1267 | // BRGE (signed operation) |
| 1268 | if ((INT32)b >= (INT32)c) |
| 1269 | { |
| 1270 | BR_TAKEJUMP |
| 1271 | } |
| 1272 | |
| 1273 | return m_pc + (size>>0); |
| 1274 | } |
| 1264 | 1275 | |
| 1265 | 1276 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_04(OPS_32) // register - register BRLO |
| 1266 | 1277 | { |
| r242546 | r242547 | |
| 1364 | 1375 | return m_pc + (size>>0); |
| 1365 | 1376 | |
| 1366 | 1377 | } |
| 1367 | | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_03(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BRGE"); } |
| 1378 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_03(OPS_32) |
| 1379 | { |
| 1380 | BR_REGIMM_SETUP |
| 1381 | |
| 1382 | // BRGE (signed operation) |
| 1383 | if ((INT32)b >= (INT32)c) |
| 1384 | { |
| 1385 | BR_TAKEJUMP |
| 1386 | } |
| 1387 | |
| 1388 | return m_pc + (size>>0); |
| 1389 | } |
| 1390 | |
| 1368 | 1391 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_04(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BRLO"); } |
| 1369 | 1392 | |
| 1370 | 1393 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_05(OPS_32) // register - immediate BRHS |
| r242546 | r242547 | |
| 2529 | 2552 | { |
| 2530 | 2553 | } |
| 2531 | 2554 | |
| 2555 | arcompact_log("unimplemented %s %08x (type 04_2f)", optext, op); |
| 2532 | 2556 | return m_pc + (size>>0); |
| 2533 | 2557 | } |
| 2534 | 2558 | |
| r242546 | r242547 | |
| 2776 | 2800 | return arcompact_handle0d_helper(PARAMS, "SUB_S"); |
| 2777 | 2801 | } |
| 2778 | 2802 | |
| 2779 | | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_02(OPS_16) |
| 2803 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_02(OPS_16) // ASL_S c, b asl u3 (note, c destination) |
| 2780 | 2804 | { |
| 2781 | | return arcompact_handle0d_helper(PARAMS, "ASL_S"); |
| 2805 | int u, breg, creg; |
| 2806 | |
| 2807 | COMMON16_GET_u3; |
| 2808 | COMMON16_GET_breg; |
| 2809 | COMMON16_GET_creg; |
| 2810 | |
| 2811 | REG_16BIT_RANGE(breg); |
| 2812 | REG_16BIT_RANGE(creg); |
| 2813 | |
| 2814 | m_regs[creg] = m_regs[breg] << u; |
| 2815 | |
| 2816 | return m_pc + (2 >> 0); |
| 2782 | 2817 | } |
| 2783 | 2818 | |
| 2784 | 2819 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_03(OPS_16) |
| r242546 | r242547 | |
| 2918 | 2953 | } |
| 2919 | 2954 | |
| 2920 | 2955 | |
| 2921 | | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_07(OPS_16) { arcompact_log("J_S.D [blink]"); return m_pc + (2 >> 0);} |
| 2956 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_07(OPS_16) // J_S.D [blink] |
| 2957 | { |
| 2958 | m_delayactive = 1; |
| 2959 | m_delayjump = m_regs[REG_BLINK]; |
| 2960 | m_delaylinks = 0; |
| 2961 | |
| 2962 | return m_pc + (2 >> 0); |
| 2963 | } |
| 2922 | 2964 | |
| 2923 | 2965 | |
| 2924 | 2966 | |
| r242546 | r242547 | |
| 3110 | 3152 | return m_pc + (2 >> 0); |
| 3111 | 3153 | } |
| 3112 | 3154 | |
| 3113 | | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle15(OPS_16) |
| 3155 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle15(OPS_16) // STB_S c. [b, u6] |
| 3114 | 3156 | { |
| 3115 | | return arcompact_handle_ld_helper(PARAMS, "STB_S", 0, 1); |
| 3157 | int breg, creg, u; |
| 3158 | |
| 3159 | COMMON16_GET_breg; |
| 3160 | COMMON16_GET_creg; |
| 3161 | COMMON16_GET_u5; |
| 3162 | |
| 3163 | REG_16BIT_RANGE(breg); |
| 3164 | REG_16BIT_RANGE(creg); |
| 3165 | |
| 3166 | // u <<= 0; |
| 3167 | |
| 3168 | WRITE8((m_regs[breg] + u) >> 0, m_regs[creg]); |
| 3169 | |
| 3170 | return m_pc + (2 >> 0); |
| 3116 | 3171 | } |
| 3117 | 3172 | |
| 3118 | 3173 | ARCOMPACT_RETTYPE arcompact_device::arcompact_handle16(OPS_16) // STW_S c. [b, u6] |