/* M68KITAB.c Copyright (C) 2007 Paul C. Pratt You can redistribute this file and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. You should have received a copy of the license along with this file; see the file COPYING. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.*/ /* Motorola 68K Instructions TABle*/ #ifndef AllFiles#include "SYSDEPNS.h"#endif #include "MYOSGLUE.h"#include "EMCONFIG.h"#include "GLOBGLUE.h" #include "M68KITAB.h" struct WorkR { /* expected size : 8 bytes */ ui5b opcode; ui5b opsize; ui4r MainClass;#if WantCycByPriOp ui4r Cycles;#endif DecOpR DecOp;};typedef struct WorkR WorkR; #define b76(p) ((p->opcode >> 6) & 3)#define b8(p) ((p->opcode >> 8) & 1)#define mode(p) ((p->opcode >> 3) & 7)#define reg(p) (p->opcode & 7)#define md6(p) ((p->opcode >> 6) & 7)#define rg9(p) ((p->opcode >> 9) & 7) enum { kAddrValidAny, kAddrValidData, kAddrValidDataAlt, kAddrValidControl, kAddrValidControlAlt, kAddrValidAltMem, kAddrValidDataNoCn, /* no constants (immediate data) */ kNumAddrValids}; #define kAddrValidMaskAny (1 << kAddrValidAny)#define kAddrValidMaskData (1 << kAddrValidData)#define kAddrValidMaskDataAlt (1 << kAddrValidDataAlt)#define kAddrValidMaskControl (1 << kAddrValidControl)#define kAddrValidMaskControlAlt (1 << kAddrValidControlAlt)#define kAddrValidMaskAltMem (1 << kAddrValidAltMem)#define kAddrValidMaskDataNoCn (1 << kAddrValidDataNoCn) #define CheckInSet(v, m) (0 != ((1 << (v)) & (m))) #define kMyAvgCycPerInstr (10 * kCycleScale + (40 * kCycleScale / 64)) LOCALFUNC ui3r GetAMdRegSz(WorkR *p){ ui3r CurAMd; switch (p->opsize) { case 1: CurAMd = kAMdRegB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdRegW; break; case 4: CurAMd = kAMdRegL; break; } return CurAMd;} LOCALFUNC ui3r GetAMdIndirectSz(WorkR *p){ ui3r CurAMd; switch (p->opsize) { case 1: CurAMd = kAMdIndirectB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdIndirectW; break; case 4: CurAMd = kAMdIndirectL; break; } return CurAMd;} #if WantCycByPriOpLOCALFUNC ui4r OpEACalcCyc(WorkR *p, ui3r m, ui3r r){ ui4r v; switch (m) { case 0: case 1: v = 0; break; case 2: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * RdAvgXtraCyc) : (4 * kCycleScale + RdAvgXtraCyc)); break; case 3: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * RdAvgXtraCyc) : (4 * kCycleScale + RdAvgXtraCyc)); break; case 4: v = ((4 == p->opsize) ? (10 * kCycleScale + 2 * RdAvgXtraCyc) : (6 * kCycleScale + RdAvgXtraCyc)); break; case 5: v = ((4 == p->opsize) ? (12 * kCycleScale + 3 * RdAvgXtraCyc) : (8 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 6: v = ((4 == p->opsize) ? (14 * kCycleScale + 3 * RdAvgXtraCyc) : (10 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 7: switch (r) { case 0: v = ((4 == p->opsize) ? (12 * kCycleScale + 3 * RdAvgXtraCyc) : (8 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 1: v = ((4 == p->opsize) ? (16 * kCycleScale + 4 * RdAvgXtraCyc) : (12 * kCycleScale + 3 * RdAvgXtraCyc)); break; case 2: v = ((4 == p->opsize) ? (12 * kCycleScale + 3 * RdAvgXtraCyc) : (8 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 3: v = ((4 == p->opsize) ? (14 * kCycleScale + 3 * RdAvgXtraCyc) : (10 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 4: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * RdAvgXtraCyc) : (4 * kCycleScale + RdAvgXtraCyc)); break; default: v = 0; break; } break; default: /* keep compiler happy */ v = 0; break; } return v;}#endif #if WantCycByPriOpLOCALFUNC ui4r OpEADestCalcCyc(WorkR *p, ui3r m, ui3r r){ ui4r v; switch (m) { case 0: case 1: v = 0; break; case 2: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * WrAvgXtraCyc) : (4 * kCycleScale + WrAvgXtraCyc)); break; case 3: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * WrAvgXtraCyc) : (4 * kCycleScale + WrAvgXtraCyc)); break; case 4: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * WrAvgXtraCyc) : (4 * kCycleScale + WrAvgXtraCyc)); break; case 5: v = ((4 == p->opsize) ? (12 * kCycleScale + RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (8 * kCycleScale + RdAvgXtraCyc + WrAvgXtraCyc)); break; case 6: v = ((4 == p->opsize) ? (14 * kCycleScale + RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (10 * kCycleScale + RdAvgXtraCyc + WrAvgXtraCyc)); break; case 7: switch (r) { case 0: v = ((4 == p->opsize) ? (12 * kCycleScale + RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (8 * kCycleScale + RdAvgXtraCyc + WrAvgXtraCyc)); break; case 1: v = ((4 == p->opsize) ? (16 * kCycleScale + 2 * RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (12 * kCycleScale + 2 * RdAvgXtraCyc + WrAvgXtraCyc)); break; default: v = 0; break; } break; default: /* keep compiler happy */ v = 0; break; } return v;}#endif LOCALPROC SetDcoArgFields(WorkR *p, blnr src, ui3r CurAMd, ui3r CurArgDat){ if (src) { p->DecOp.y.v[0].AMd = CurAMd; p->DecOp.y.v[0].ArgDat = CurArgDat; } else { p->DecOp.y.v[1].AMd = CurAMd; p->DecOp.y.v[1].ArgDat = CurArgDat; }} LOCALFUNC blnr CheckValidAddrMode(WorkR *p, ui3r m, ui3r r, ui3r v, blnr src){ ui3r CurAMd = 0; /* init to keep compiler happy */ ui3r CurArgDat = 0; blnr IsOk; switch (m) { case 0: CurAMd = GetAMdRegSz(p); CurArgDat = r; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskDataNoCn); break; case 1: CurAMd = GetAMdRegSz(p); CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny); break; case 2: CurAMd = GetAMdIndirectSz(p); CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 3: switch (p->opsize) { case 1: if (7 == r) { CurAMd = kAMdAPosInc7B; } else { CurAMd = kAMdAPosIncB; } break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAPosIncW; break; case 4: CurAMd = kAMdAPosIncL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 4: switch (p->opsize) { case 1: if (7 == r) { CurAMd = kAMdAPreDec7B; } else { CurAMd = kAMdAPreDecB; } break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAPreDecW; break; case 4: CurAMd = kAMdAPreDecL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 5: switch (p->opsize) { case 1: CurAMd = kAMdADispB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdADispW; break; case 4: CurAMd = kAMdADispL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 6: switch (p->opsize) { case 1: CurAMd = kAMdAIndexB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAIndexW; break; case 4: CurAMd = kAMdAIndexL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 7: switch (r) { case 0: switch (p->opsize) { case 1: CurAMd = kAMdAbsWB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAbsWW; break; case 4: CurAMd = kAMdAbsWL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 1: switch (p->opsize) { case 1: CurAMd = kAMdAbsLB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAbsLW; break; case 4: CurAMd = kAMdAbsLL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 2: switch (p->opsize) { case 1: CurAMd = kAMdPCDispB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdPCDispW; break; case 4: CurAMd = kAMdPCDispL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskControl | kAddrValidMaskDataNoCn); break; case 3: switch (p->opsize) { case 1: CurAMd = kAMdPCIndexB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdPCIndexW; break; case 4: CurAMd = kAMdPCIndexL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskControl | kAddrValidMaskDataNoCn); break; case 4: switch (p->opsize) { case 1: CurAMd = kAMdImmedB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdImmedW; break; case 4: CurAMd = kAMdImmedL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData); break; default: IsOk = falseblnr; break; } break; default: /* keep compiler happy */ IsOk = falseblnr; break; } if (IsOk) { SetDcoArgFields(p, src, CurAMd, CurArgDat); } return IsOk;} #if WantCycByPriOpLOCALFUNC blnr LeaPeaEACalcCyc(WorkR *p, ui3r m, ui3r r){ ui4r v; UnusedParam(p);Lines 1–500 of 3072. Load more
/* M68KITAB.c Copyright (C) 2007 Paul C. Pratt You can redistribute this file and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. You should have received a copy of the license along with this file; see the file COPYING. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /* Motorola 68K Instructions TABle */ #ifndef AllFiles #include "SYSDEPNS.h" #endif #include "MYOSGLUE.h" #include "EMCONFIG.h" #include "GLOBGLUE.h" #include "M68KITAB.h" struct WorkR { /* expected size : 8 bytes */ ui5b opcode; ui5b opsize; ui4r MainClass; #if WantCycByPriOp ui4r Cycles; #endif DecOpR DecOp; }; typedef struct WorkR WorkR; #define b76(p) ((p->opcode >> 6) & 3) #define b8(p) ((p->opcode >> 8) & 1) #define mode(p) ((p->opcode >> 3) & 7) #define reg(p) (p->opcode & 7) #define md6(p) ((p->opcode >> 6) & 7) #define rg9(p) ((p->opcode >> 9) & 7) enum { kAddrValidAny, kAddrValidData, kAddrValidDataAlt, kAddrValidControl, kAddrValidControlAlt, kAddrValidAltMem, kAddrValidDataNoCn, /* no constants (immediate data) */ kNumAddrValids }; #define kAddrValidMaskAny (1 << kAddrValidAny) #define kAddrValidMaskData (1 << kAddrValidData) #define kAddrValidMaskDataAlt (1 << kAddrValidDataAlt) #define kAddrValidMaskControl (1 << kAddrValidControl) #define kAddrValidMaskControlAlt (1 << kAddrValidControlAlt) #define kAddrValidMaskAltMem (1 << kAddrValidAltMem) #define kAddrValidMaskDataNoCn (1 << kAddrValidDataNoCn) #define CheckInSet(v, m) (0 != ((1 << (v)) & (m))) #define kMyAvgCycPerInstr (10 * kCycleScale + (40 * kCycleScale / 64)) LOCALFUNC ui3r GetAMdRegSz(WorkR *p) { ui3r CurAMd; switch (p->opsize) { case 1: CurAMd = kAMdRegB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdRegW; break; case 4: CurAMd = kAMdRegL; break; } return CurAMd; } LOCALFUNC ui3r GetAMdIndirectSz(WorkR *p) { ui3r CurAMd; switch (p->opsize) { case 1: CurAMd = kAMdIndirectB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdIndirectW; break; case 4: CurAMd = kAMdIndirectL; break; } return CurAMd; } #if WantCycByPriOp LOCALFUNC ui4r OpEACalcCyc(WorkR *p, ui3r m, ui3r r) { ui4r v; switch (m) { case 0: case 1: v = 0; break; case 2: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * RdAvgXtraCyc) : (4 * kCycleScale + RdAvgXtraCyc)); break; case 3: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * RdAvgXtraCyc) : (4 * kCycleScale + RdAvgXtraCyc)); break; case 4: v = ((4 == p->opsize) ? (10 * kCycleScale + 2 * RdAvgXtraCyc) : (6 * kCycleScale + RdAvgXtraCyc)); break; case 5: v = ((4 == p->opsize) ? (12 * kCycleScale + 3 * RdAvgXtraCyc) : (8 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 6: v = ((4 == p->opsize) ? (14 * kCycleScale + 3 * RdAvgXtraCyc) : (10 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 7: switch (r) { case 0: v = ((4 == p->opsize) ? (12 * kCycleScale + 3 * RdAvgXtraCyc) : (8 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 1: v = ((4 == p->opsize) ? (16 * kCycleScale + 4 * RdAvgXtraCyc) : (12 * kCycleScale + 3 * RdAvgXtraCyc)); break; case 2: v = ((4 == p->opsize) ? (12 * kCycleScale + 3 * RdAvgXtraCyc) : (8 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 3: v = ((4 == p->opsize) ? (14 * kCycleScale + 3 * RdAvgXtraCyc) : (10 * kCycleScale + 2 * RdAvgXtraCyc)); break; case 4: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * RdAvgXtraCyc) : (4 * kCycleScale + RdAvgXtraCyc)); break; default: v = 0; break; } break; default: /* keep compiler happy */ v = 0; break; } return v; } #endif #if WantCycByPriOp LOCALFUNC ui4r OpEADestCalcCyc(WorkR *p, ui3r m, ui3r r) { ui4r v; switch (m) { case 0: case 1: v = 0; break; case 2: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * WrAvgXtraCyc) : (4 * kCycleScale + WrAvgXtraCyc)); break; case 3: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * WrAvgXtraCyc) : (4 * kCycleScale + WrAvgXtraCyc)); break; case 4: v = ((4 == p->opsize) ? (8 * kCycleScale + 2 * WrAvgXtraCyc) : (4 * kCycleScale + WrAvgXtraCyc)); break; case 5: v = ((4 == p->opsize) ? (12 * kCycleScale + RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (8 * kCycleScale + RdAvgXtraCyc + WrAvgXtraCyc)); break; case 6: v = ((4 == p->opsize) ? (14 * kCycleScale + RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (10 * kCycleScale + RdAvgXtraCyc + WrAvgXtraCyc)); break; case 7: switch (r) { case 0: v = ((4 == p->opsize) ? (12 * kCycleScale + RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (8 * kCycleScale + RdAvgXtraCyc + WrAvgXtraCyc)); break; case 1: v = ((4 == p->opsize) ? (16 * kCycleScale + 2 * RdAvgXtraCyc + 2 * WrAvgXtraCyc) : (12 * kCycleScale + 2 * RdAvgXtraCyc + WrAvgXtraCyc)); break; default: v = 0; break; } break; default: /* keep compiler happy */ v = 0; break; } return v; } #endif LOCALPROC SetDcoArgFields(WorkR *p, blnr src, ui3r CurAMd, ui3r CurArgDat) { if (src) { p->DecOp.y.v[0].AMd = CurAMd; p->DecOp.y.v[0].ArgDat = CurArgDat; } else { p->DecOp.y.v[1].AMd = CurAMd; p->DecOp.y.v[1].ArgDat = CurArgDat; } } LOCALFUNC blnr CheckValidAddrMode(WorkR *p, ui3r m, ui3r r, ui3r v, blnr src) { ui3r CurAMd = 0; /* init to keep compiler happy */ ui3r CurArgDat = 0; blnr IsOk; switch (m) { case 0: CurAMd = GetAMdRegSz(p); CurArgDat = r; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskDataNoCn); break; case 1: CurAMd = GetAMdRegSz(p); CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny); break; case 2: CurAMd = GetAMdIndirectSz(p); CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 3: switch (p->opsize) { case 1: if (7 == r) { CurAMd = kAMdAPosInc7B; } else { CurAMd = kAMdAPosIncB; } break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAPosIncW; break; case 4: CurAMd = kAMdAPosIncL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 4: switch (p->opsize) { case 1: if (7 == r) { CurAMd = kAMdAPreDec7B; } else { CurAMd = kAMdAPreDecB; } break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAPreDecW; break; case 4: CurAMd = kAMdAPreDecL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 5: switch (p->opsize) { case 1: CurAMd = kAMdADispB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdADispW; break; case 4: CurAMd = kAMdADispL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 6: switch (p->opsize) { case 1: CurAMd = kAMdAIndexB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAIndexW; break; case 4: CurAMd = kAMdAIndexL; break; } CurArgDat = r + 8; IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 7: switch (r) { case 0: switch (p->opsize) { case 1: CurAMd = kAMdAbsWB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAbsWW; break; case 4: CurAMd = kAMdAbsWL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 1: switch (p->opsize) { case 1: CurAMd = kAMdAbsLB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdAbsLW; break; case 4: CurAMd = kAMdAbsLL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskDataAlt | kAddrValidMaskControl | kAddrValidMaskControlAlt | kAddrValidMaskAltMem | kAddrValidMaskDataNoCn); break; case 2: switch (p->opsize) { case 1: CurAMd = kAMdPCDispB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdPCDispW; break; case 4: CurAMd = kAMdPCDispL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskControl | kAddrValidMaskDataNoCn); break; case 3: switch (p->opsize) { case 1: CurAMd = kAMdPCIndexB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdPCIndexW; break; case 4: CurAMd = kAMdPCIndexL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData | kAddrValidMaskControl | kAddrValidMaskDataNoCn); break; case 4: switch (p->opsize) { case 1: CurAMd = kAMdImmedB; break; case 2: default: /* keep compiler happy */ CurAMd = kAMdImmedW; break; case 4: CurAMd = kAMdImmedL; break; } IsOk = CheckInSet(v, kAddrValidMaskAny | kAddrValidMaskData); break; default: IsOk = falseblnr; break; } break; default: /* keep compiler happy */ IsOk = falseblnr; break; } if (IsOk) { SetDcoArgFields(p, src, CurAMd, CurArgDat); } return IsOk; } #if WantCycByPriOp LOCALFUNC blnr LeaPeaEACalcCyc(WorkR *p, ui3r m, ui3r r) { ui4r v; UnusedParam(p);