comparison m68k_to_x86.c @ 106:1eba2b9455f8

Implement ORI to CCR/SR
author Mike Pavone <pavone@retrodev.com>
date Fri, 28 Dec 2012 11:07:13 -0800
parents 1a0fd122ca8f
children 9705075fcf36
comparison
equal deleted inserted replaced
105:1a0fd122ca8f 106:1eba2b9455f8
2035 dst = setcc_r(dst, CC_Z, FLAG_Z); 2035 dst = setcc_r(dst, CC_Z, FLAG_Z);
2036 dst = setcc_r(dst, CC_S, FLAG_N); 2036 dst = setcc_r(dst, CC_S, FLAG_N);
2037 dst = mov_ir(dst, 0, FLAG_V, SZ_B); 2037 dst = mov_ir(dst, 0, FLAG_V, SZ_B);
2038 dst = m68k_save_result(inst, dst, opts); 2038 dst = m68k_save_result(inst, dst, opts);
2039 break; 2039 break;
2040 /*case M68K_ORI_CCR: 2040 case M68K_ORI_CCR:
2041 case M68K_ORI_SR: 2041 case M68K_ORI_SR:
2042 case M68K_PEA: 2042 dst = cycles(dst, 20);
2043 //TODO: If ANDI to SR, trap if not in supervisor mode
2044 if (inst->src.params.immed & 0x1) {
2045 dst = mov_ir(dst, 1, FLAG_C, SZ_B);
2046 }
2047 if (inst->src.params.immed & 0x2) {
2048 dst = mov_ir(dst, 1, FLAG_V, SZ_B);
2049 }
2050 if (inst->src.params.immed & 0x4) {
2051 dst = mov_ir(dst, 1, FLAG_Z, SZ_B);
2052 }
2053 if (inst->src.params.immed & 0x8) {
2054 dst = mov_ir(dst, 1, FLAG_N, SZ_B);
2055 }
2056 if (inst->src.params.immed & 0x10) {
2057 dst = mov_irind(dst, 1, CONTEXT, SZ_B);
2058 }
2059 if (inst->op == M68K_ANDI_SR) {
2060 dst = or_irdisp8(dst, inst->src.params.immed >> 8, CONTEXT, offsetof(m68k_context, status), SZ_B);
2061 }
2062 break;
2063 /*case M68K_PEA:
2043 case M68K_RESET: 2064 case M68K_RESET:
2044 case M68K_ROL: 2065 case M68K_ROL:
2045 case M68K_ROR: 2066 case M68K_ROR:
2046 case M68K_ROXL: 2067 case M68K_ROXL:
2047 case M68K_ROXR:*/ 2068 case M68K_ROXR:*/