mirror of
https://github.com/LIV2/WinUAE.git
synced 2025-12-06 00:12:52 +00:00
Initial CPU tester commit.
This commit is contained in:
parent
016b7cee26
commit
1795dc4199
5
.gitignore
vendored
5
.gitignore
vendored
@ -11,7 +11,6 @@
|
||||
*.idb
|
||||
*.res
|
||||
*.pch
|
||||
*.ini
|
||||
release
|
||||
debug
|
||||
bin
|
||||
@ -63,10 +62,13 @@ aros.rom.cpp
|
||||
/cpuemu_40.cpp
|
||||
/cpuemu_50.cpp
|
||||
/cpustbl.cpp
|
||||
/cpustbl_test.cpp
|
||||
/cputbl.h
|
||||
/cputbl_test.h
|
||||
/jit/compemu.cpp
|
||||
/jit/compstbl.cpp
|
||||
/jit/comptbl.h
|
||||
/cputest/data
|
||||
/linetoscr.cpp
|
||||
*.iobj
|
||||
*.ipdb
|
||||
@ -76,3 +78,4 @@ packages.config
|
||||
*.sqlite
|
||||
*.db-shm
|
||||
*.db-wal
|
||||
*.o
|
||||
|
||||
439
assem.cpp
Normal file
439
assem.cpp
Normal file
@ -0,0 +1,439 @@
|
||||
|
||||
static const TCHAR *fpsizes[] = {
|
||||
_T("L"),
|
||||
_T("S"),
|
||||
_T("X"),
|
||||
_T("P"),
|
||||
_T("W"),
|
||||
_T("D"),
|
||||
_T("B"),
|
||||
_T("P")
|
||||
};
|
||||
static const int fpsizeconv[] = {
|
||||
sz_long,
|
||||
sz_single,
|
||||
sz_extended,
|
||||
sz_packed,
|
||||
sz_word,
|
||||
sz_double,
|
||||
sz_byte,
|
||||
sz_packed
|
||||
};
|
||||
static const int datasizes[] = {
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
4,
|
||||
8,
|
||||
12,
|
||||
12
|
||||
};
|
||||
|
||||
static void showea_val(TCHAR *buffer, uae_u16 opcode, uaecptr addr, int size)
|
||||
{
|
||||
struct mnemolookup *lookup;
|
||||
instr *table = &table68k[opcode];
|
||||
|
||||
if (addr >= 0xe90000 && addr < 0xf00000)
|
||||
goto skip;
|
||||
if (addr >= 0xdff000 && addr < 0xe00000)
|
||||
goto skip;
|
||||
|
||||
for (lookup = lookuptab; lookup->mnemo != table->mnemo; lookup++)
|
||||
;
|
||||
if (!(lookup->flags & 1))
|
||||
goto skip;
|
||||
buffer += _tcslen(buffer);
|
||||
if (debug_safe_addr(addr, datasizes[size])) {
|
||||
bool cached = false;
|
||||
switch (size)
|
||||
{
|
||||
case sz_byte:
|
||||
{
|
||||
uae_u8 v = get_byte_cache_debug(addr, &cached);
|
||||
uae_u8 v2 = v;
|
||||
if (cached)
|
||||
v2 = get_byte_debug(addr);
|
||||
if (v != v2) {
|
||||
_stprintf(buffer, _T(" [%02x:%02x]"), v, v2);
|
||||
} else {
|
||||
_stprintf(buffer, _T(" [%s%02x]"), cached ? _T("*") : _T(""), v);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case sz_word:
|
||||
{
|
||||
uae_u16 v = get_word_cache_debug(addr, &cached);
|
||||
uae_u16 v2 = v;
|
||||
if (cached)
|
||||
v2 = get_word_debug(addr);
|
||||
if (v != v2) {
|
||||
_stprintf(buffer, _T(" [%04x:%04x]"), v, v2);
|
||||
} else {
|
||||
_stprintf(buffer, _T(" [%s%04x]"), cached ? _T("*") : _T(""), v);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case sz_long:
|
||||
{
|
||||
uae_u32 v = get_long_cache_debug(addr, &cached);
|
||||
uae_u32 v2 = v;
|
||||
if (cached)
|
||||
v2 = get_long_debug(addr);
|
||||
if (v != v2) {
|
||||
_stprintf(buffer, _T(" [%08x:%08x]"), v, v2);
|
||||
} else {
|
||||
_stprintf(buffer, _T(" [%s%08x]"), cached ? _T("*") : _T(""), v);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case sz_single:
|
||||
{
|
||||
fpdata fp;
|
||||
fpp_to_single(&fp, get_long_debug(addr));
|
||||
_stprintf(buffer, _T("[%s]"), fpp_print(&fp, 0));
|
||||
}
|
||||
break;
|
||||
case sz_double:
|
||||
{
|
||||
fpdata fp;
|
||||
fpp_to_double(&fp, get_long_debug(addr), get_long_debug(addr + 4));
|
||||
_stprintf(buffer, _T("[%s]"), fpp_print(&fp, 0));
|
||||
}
|
||||
break;
|
||||
case sz_extended:
|
||||
{
|
||||
fpdata fp;
|
||||
fpp_to_exten(&fp, get_long_debug(addr), get_long_debug(addr + 4), get_long_debug(addr + 8));
|
||||
_stprintf(buffer, _T("[%s]"), fpp_print(&fp, 0));
|
||||
break;
|
||||
}
|
||||
case sz_packed:
|
||||
_stprintf(buffer, _T("[%08x%08x%08x]"), get_long_debug(addr), get_long_debug(addr + 4), get_long_debug(addr + 8));
|
||||
break;
|
||||
}
|
||||
}
|
||||
skip:
|
||||
for (int i = 0; i < size; i++) {
|
||||
TCHAR name[256];
|
||||
if (debugmem_get_symbol(addr + i, name, sizeof(name) / sizeof(TCHAR))) {
|
||||
_stprintf(buffer + _tcslen(buffer), _T(" %s"), name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static uaecptr ShowEA_disp(uaecptr *pcp, uaecptr base, TCHAR *buffer, const TCHAR *name)
|
||||
{
|
||||
uaecptr addr;
|
||||
uae_u16 dp;
|
||||
int r;
|
||||
uae_u32 dispreg;
|
||||
uaecptr pc = *pcp;
|
||||
TCHAR mult[20];
|
||||
|
||||
dp = get_iword_debug(pc);
|
||||
pc += 2;
|
||||
|
||||
r = (dp & 0x7000) >> 12; // REGISTER
|
||||
|
||||
dispreg = dp & 0x8000 ? m68k_areg(regs, r) : m68k_dreg(regs, r);
|
||||
if (!(dp & 0x800)) { // W/L
|
||||
dispreg = (uae_s32)(uae_s16)(dispreg);
|
||||
}
|
||||
|
||||
if (currprefs.cpu_model >= 68020) {
|
||||
dispreg <<= (dp >> 9) & 3; // SCALE
|
||||
}
|
||||
|
||||
int m = 1 << ((dp >> 9) & 3);
|
||||
mult[0] = 0;
|
||||
if (m > 1) {
|
||||
_stprintf(mult, _T("*%d"), m);
|
||||
}
|
||||
|
||||
buffer[0] = 0;
|
||||
if ((dp & 0x100) && currprefs.cpu_model >= 68020) {
|
||||
TCHAR dr[20];
|
||||
// Full format extension (68020+)
|
||||
uae_s32 outer = 0, disp = 0;
|
||||
if (dp & 0x80) { // BS (base register suppress)
|
||||
base = 0;
|
||||
name = NULL;
|
||||
}
|
||||
_stprintf(dr, _T("%c%d.%c"), dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W');
|
||||
if (dp & 0x40) { // IS (index suppress)
|
||||
dispreg = 0;
|
||||
dr[0] = 0;
|
||||
}
|
||||
|
||||
_tcscpy(buffer, _T("("));
|
||||
TCHAR *p = buffer + _tcslen(buffer);
|
||||
|
||||
if (dp & 3) {
|
||||
// indirect
|
||||
_stprintf(p, _T("["));
|
||||
p += _tcslen(p);
|
||||
} else {
|
||||
// (an,dn,word/long)
|
||||
if (name) {
|
||||
_stprintf(p, _T("%s,"), name);
|
||||
p += _tcslen(p);
|
||||
}
|
||||
if (dr[0]) {
|
||||
_stprintf(p, _T("%s%s,"), dr, mult);
|
||||
p += _tcslen(p);
|
||||
}
|
||||
}
|
||||
|
||||
if ((dp & 0x30) == 0x20) { // BD SIZE = 2 (WORD)
|
||||
disp = (uae_s32)(uae_s16)get_iword_debug(pc);
|
||||
_stprintf(p, _T("$%04x,"), (uae_s16)disp);
|
||||
p += _tcslen(p);
|
||||
pc += 2;
|
||||
base += disp;
|
||||
} else if ((dp & 0x30) == 0x30) { // BD SIZE = 3 (LONG)
|
||||
disp = get_ilong_debug(pc);
|
||||
_stprintf(p, _T("$%08x,"), disp);
|
||||
p += _tcslen(p);
|
||||
pc += 4;
|
||||
base += disp;
|
||||
}
|
||||
|
||||
if (dp & 3) {
|
||||
if (name) {
|
||||
_stprintf(p, _T("%s,"), name);
|
||||
p += _tcslen(p);
|
||||
}
|
||||
|
||||
if (!(dp & 0x04)) {
|
||||
if (dr[0]) {
|
||||
_stprintf(p, _T("%s%s,"), dr, mult);
|
||||
p += _tcslen(p);
|
||||
}
|
||||
}
|
||||
|
||||
if (p[-1] == ',')
|
||||
p--;
|
||||
_stprintf(p, _T("],"));
|
||||
p += _tcslen(p);
|
||||
|
||||
if ((dp & 0x04)) {
|
||||
if (dr[0]) {
|
||||
_stprintf(p, _T("%s%s,"), dr, mult);
|
||||
p += _tcslen(p);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ((dp & 0x03) == 0x02) {
|
||||
outer = (uae_s32)(uae_s16)get_iword_debug(pc);
|
||||
_stprintf(p, _T("$%04x,"), (uae_s16)outer);
|
||||
p += _tcslen(p);
|
||||
pc += 2;
|
||||
} else if ((dp & 0x03) == 0x03) {
|
||||
outer = get_ilong_debug(pc);
|
||||
_stprintf(p, _T("$%08x,"), outer);
|
||||
p += _tcslen(p);
|
||||
pc += 4;
|
||||
}
|
||||
|
||||
if (p[-1] == ',')
|
||||
p--;
|
||||
_stprintf(p, _T(")"));
|
||||
p += _tcslen(p);
|
||||
|
||||
if ((dp & 0x4) == 0)
|
||||
base += dispreg;
|
||||
if (dp & 0x3)
|
||||
base = get_long_debug(base);
|
||||
if (dp & 0x4)
|
||||
base += dispreg;
|
||||
|
||||
addr = base + outer;
|
||||
|
||||
_stprintf(p, _T(" == $%08x"), addr);
|
||||
p += _tcslen(p);
|
||||
|
||||
} else {
|
||||
// Brief format extension
|
||||
TCHAR regstr[20];
|
||||
uae_s8 disp8 = dp & 0xFF;
|
||||
|
||||
regstr[0] = 0;
|
||||
_stprintf(regstr, _T(",%c%d.%c"), dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W');
|
||||
addr = base + (uae_s32)((uae_s8)disp8) + dispreg;
|
||||
_stprintf(buffer, _T("(%s%s%s,$%02x) == $%08x"), name, regstr, mult, disp8, addr);
|
||||
if (dp & 0x100) {
|
||||
_tcscat(buffer, _T(" (68020+)"));
|
||||
}
|
||||
}
|
||||
|
||||
*pcp = pc;
|
||||
return addr;
|
||||
}
|
||||
|
||||
uaecptr ShowEA (void *f, uaecptr pc, uae_u16 opcode, int reg, amodes mode, wordsizes size, TCHAR *buf, uae_u32 *eaddr, int safemode)
|
||||
{
|
||||
uaecptr addr = pc;
|
||||
uae_s16 disp16;
|
||||
uae_s32 offset = 0;
|
||||
TCHAR buffer[80];
|
||||
|
||||
switch (mode){
|
||||
case Dreg:
|
||||
_stprintf (buffer, _T("D%d"), reg);
|
||||
break;
|
||||
case Areg:
|
||||
_stprintf (buffer, _T("A%d"), reg);
|
||||
break;
|
||||
case Aind:
|
||||
_stprintf (buffer, _T("(A%d)"), reg);
|
||||
addr = regs.regs[reg + 8];
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case Aipi:
|
||||
_stprintf (buffer, _T("(A%d)+"), reg);
|
||||
addr = regs.regs[reg + 8];
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case Apdi:
|
||||
_stprintf (buffer, _T("-(A%d)"), reg);
|
||||
addr = regs.regs[reg + 8];
|
||||
showea_val(buffer, opcode, addr - datasizes[size], size);
|
||||
break;
|
||||
case Ad16:
|
||||
{
|
||||
TCHAR offtxt[8];
|
||||
disp16 = get_iword_debug (pc); pc += 2;
|
||||
if (disp16 < 0)
|
||||
_stprintf (offtxt, _T("-$%04x"), -disp16);
|
||||
else
|
||||
_stprintf (offtxt, _T("$%04x"), disp16);
|
||||
addr = m68k_areg (regs, reg) + disp16;
|
||||
_stprintf (buffer, _T("(A%d,%s) == $%08x"), reg, offtxt, addr);
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
}
|
||||
break;
|
||||
case Ad8r:
|
||||
{
|
||||
TCHAR name[10];
|
||||
_stprintf(name, _T("A%d"), reg);
|
||||
addr = ShowEA_disp(&pc, m68k_areg(regs, reg), buffer, name);
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
}
|
||||
break;
|
||||
case PC16:
|
||||
disp16 = get_iword_debug (pc); pc += 2;
|
||||
addr += (uae_s16)disp16;
|
||||
_stprintf (buffer, _T("(PC,$%04x) == $%08x"), disp16 & 0xffff, addr);
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case PC8r:
|
||||
{
|
||||
addr = ShowEA_disp(&pc, addr, buffer, _T("PC"));
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
}
|
||||
break;
|
||||
case absw:
|
||||
addr = (uae_s32)(uae_s16)get_iword_debug (pc);
|
||||
_stprintf (buffer, _T("$%04x"), (uae_u16)addr);
|
||||
pc += 2;
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case absl:
|
||||
addr = get_ilong_debug (pc);
|
||||
_stprintf (buffer, _T("$%08x"), addr);
|
||||
pc += 4;
|
||||
showea_val(buffer, opcode, addr, size);
|
||||
break;
|
||||
case imm:
|
||||
switch (size){
|
||||
case sz_byte:
|
||||
_stprintf (buffer, _T("#$%02x"), (get_iword_debug (pc) & 0xff));
|
||||
pc += 2;
|
||||
break;
|
||||
case sz_word:
|
||||
_stprintf (buffer, _T("#$%04x"), (get_iword_debug (pc) & 0xffff));
|
||||
pc += 2;
|
||||
break;
|
||||
case sz_long:
|
||||
_stprintf(buffer, _T("#$%08x"), (get_ilong_debug(pc)));
|
||||
pc += 4;
|
||||
break;
|
||||
case sz_single:
|
||||
{
|
||||
fpdata fp;
|
||||
fpp_to_single(&fp, get_ilong_debug(pc));
|
||||
_stprintf(buffer, _T("#%s"), fpp_print(&fp, 0));
|
||||
pc += 4;
|
||||
}
|
||||
break;
|
||||
case sz_double:
|
||||
{
|
||||
fpdata fp;
|
||||
fpp_to_double(&fp, get_ilong_debug(pc), get_ilong_debug(pc + 4));
|
||||
_stprintf(buffer, _T("#%s"), fpp_print(&fp, 0));
|
||||
pc += 8;
|
||||
}
|
||||
break;
|
||||
case sz_extended:
|
||||
{
|
||||
fpdata fp;
|
||||
fpp_to_exten(&fp, get_ilong_debug(pc), get_ilong_debug(pc + 4), get_ilong_debug(pc + 8));
|
||||
_stprintf(buffer, _T("#%s"), fpp_print(&fp, 0));
|
||||
pc += 12;
|
||||
break;
|
||||
}
|
||||
case sz_packed:
|
||||
_stprintf(buffer, _T("#$%08x%08x%08x"), get_ilong_debug(pc), get_ilong_debug(pc + 4), get_ilong_debug(pc + 8));
|
||||
pc += 12;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case imm0:
|
||||
offset = (uae_s32)(uae_s8)get_iword_debug (pc);
|
||||
_stprintf (buffer, _T("#$%02x"), (uae_u32)(offset & 0xff));
|
||||
addr = pc + 2 + offset;
|
||||
if ((opcode & 0xf000) == 0x6000) {
|
||||
showea_val(buffer, opcode, addr, 1);
|
||||
}
|
||||
pc += 2;
|
||||
break;
|
||||
case imm1:
|
||||
offset = (uae_s32)(uae_s16)get_iword_debug (pc);
|
||||
buffer[0] = 0;
|
||||
_stprintf (buffer, _T("#$%04x"), (uae_u32)(offset & 0xffff));
|
||||
addr = pc + offset;
|
||||
if ((opcode & 0xf000) == 0x6000) {
|
||||
showea_val(buffer, opcode, addr, 2);
|
||||
}
|
||||
pc += 2;
|
||||
break;
|
||||
case imm2:
|
||||
offset = (uae_s32)get_ilong_debug (pc);
|
||||
_stprintf (buffer, _T("#$%08x"), (uae_u32)offset);
|
||||
addr = pc + offset;
|
||||
if ((opcode & 0xf000) == 0x6000) {
|
||||
showea_val(buffer, opcode, addr, 4);
|
||||
}
|
||||
pc += 4;
|
||||
break;
|
||||
case immi:
|
||||
offset = (uae_s32)(uae_s8)(reg & 0xff);
|
||||
_stprintf (buffer, _T("#$%02x"), (uae_u8)offset);
|
||||
addr = pc + offset;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (buf == NULL)
|
||||
f_out (f, _T("%s"), buffer);
|
||||
else
|
||||
_tcscat (buf, buffer);
|
||||
if (eaddr)
|
||||
*eaddr = addr;
|
||||
return pc;
|
||||
}
|
||||
2556
cputest.cpp
Normal file
2556
cputest.cpp
Normal file
File diff suppressed because it is too large
Load Diff
2315
cputest/68kDisass.c
Normal file
2315
cputest/68kDisass.c
Normal file
File diff suppressed because it is too large
Load Diff
27
cputest/68kDisass.h
Normal file
27
cputest/68kDisass.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
Hatari - 68kDisass.h
|
||||
|
||||
This file is distributed under the GNU General Public License, version 2
|
||||
or at your option any later version. Read the file gpl.txt for details.
|
||||
*/
|
||||
#ifndef HATARI_68KDISASS_H
|
||||
#define HATARI_68KDISASS_H
|
||||
|
||||
extern Uint32 Disasm_GetNextPC(Uint32 pc);
|
||||
extern void Disasm (FILE *f, uaecptr addr, uaecptr *nextpc, int cnt);
|
||||
|
||||
enum {
|
||||
DISASM_COLUMN_ADDRESS = 0,
|
||||
DISASM_COLUMN_HEXDUMP,
|
||||
DISASM_COLUMN_LABEL,
|
||||
DISASM_COLUMN_OPCODE,
|
||||
DISASM_COLUMN_OPERAND,
|
||||
DISASM_COLUMN_COMMENT,
|
||||
DISASM_COLUMNS /* number of columns in disassembly output */
|
||||
};
|
||||
|
||||
#define DISASM_COLUMN_DISABLE -1
|
||||
|
||||
void Disasm_SetCPUType ( int CPU , int FPU );
|
||||
|
||||
#endif /* HATARI_68KDISASS_H */
|
||||
74
cputest/amiga.S
Normal file
74
cputest/amiga.S
Normal file
@ -0,0 +1,74 @@
|
||||
|
||||
.text
|
||||
|
||||
.globl _allocate_absolute
|
||||
.globl _free_absolute
|
||||
.globl _touser
|
||||
.globl _tosuper
|
||||
.globl _testexit
|
||||
.globl _get_cpu_model
|
||||
|
||||
| check left mouse button/joystick fire
|
||||
_testexit:
|
||||
moveq #0,d0
|
||||
move.b 0xbfe001,d0
|
||||
and.b #0xc0,d0
|
||||
eor.b #0xc0,d0
|
||||
| d0 != 0: -> exit
|
||||
rts
|
||||
|
||||
| super mode, disable interrupts
|
||||
_tosuper:
|
||||
move.l a6,-(sp)
|
||||
move.l 4.w,a6
|
||||
jsr -0x78(a6) | Disable
|
||||
jsr -0x96(a6) | SuperState
|
||||
move.w #0x0200,0xdff096
|
||||
move.l (sp)+,a6
|
||||
rts
|
||||
|
||||
| back to user mode, enable interrupts
|
||||
_touser:
|
||||
move.l a6,-(sp)
|
||||
move.l 4.w,a6
|
||||
move.l 8(sp),d0
|
||||
jsr -0x9c(a6) | UserState
|
||||
move.w #0x8200,0xdff096
|
||||
jsr -0x7e(a6) | Enable
|
||||
move.l (sp)+,a6
|
||||
rts
|
||||
|
||||
| free absolute allocated test memory
|
||||
_free_absolute:
|
||||
move.l a6,-(sp)
|
||||
move.l 8(sp),a1
|
||||
move.l 12(sp),d0
|
||||
move.l 4.w,a6
|
||||
jsr -0xd2(a6) | FreeMem
|
||||
move.l (sp)+,a6
|
||||
rts
|
||||
|
||||
| allocate absolute memory
|
||||
_allocate_absolute:
|
||||
move.l a6,-(sp)
|
||||
move.l 8(sp),a1
|
||||
move.l 12(sp),d0
|
||||
move.l 4.w,a6
|
||||
jsr -0xcc(a6) | AllocAbs
|
||||
move.l (sp)+,a6
|
||||
rts
|
||||
|
||||
| return CPU model (68000=0, 68010=1, 68020=2)
|
||||
_get_cpu_model:
|
||||
move.l 4.w,a0
|
||||
moveq #0,d0
|
||||
move.w 0x128(a0),d1
|
||||
and.w #3,d1
|
||||
beq.s .cpudone
|
||||
moveq #2,d0
|
||||
btst #1,d1
|
||||
bne.s .cpudone
|
||||
moveq #1,d0
|
||||
.cpudone:
|
||||
rts
|
||||
|
||||
340
cputest/asm.S
Normal file
340
cputest/asm.S
Normal file
@ -0,0 +1,340 @@
|
||||
|
||||
.text
|
||||
|
||||
.globl _execute_test000
|
||||
.globl _execute_test010
|
||||
.globl _execute_test020
|
||||
.globl _execute_testfpu
|
||||
.globl _exception010
|
||||
.globl _exception020
|
||||
.globl _exceptionfpu
|
||||
.globl _exceptiontable000
|
||||
.globl _setvbr
|
||||
.globl _setcpu
|
||||
.globl _flushcache
|
||||
|
||||
S_DREG = 0
|
||||
S_AREG = S_DREG+8*4
|
||||
S_SSP = S_AREG+8*4
|
||||
S_MSP = S_SSP+4
|
||||
S_PC = S_MSP+4
|
||||
S_SR = S_PC+4
|
||||
S_EXC = S_SR+4
|
||||
S_FPU = S_EXC+4
|
||||
S_FPIAR = S_FPU+8*12
|
||||
S_FPCR = S_FPIAR+4
|
||||
S_FPSR = S_FPCR+4
|
||||
|
||||
| set CPU special registers
|
||||
_setcpu:
|
||||
move.l 4(sp),d1 | cpu_lvl
|
||||
move.l 8(sp),a1 | new
|
||||
move.l 12(sp),a0 | store
|
||||
cmp.w #1,d1
|
||||
bcs.s .scend1
|
||||
move.l a0,d0
|
||||
beq.s .scend1
|
||||
movec sfc,d0
|
||||
move.l d0,(a0)+
|
||||
movec dfc,d0
|
||||
move.l d0,(a0)+
|
||||
cmp.w #2,d1
|
||||
bcs.s .scend1
|
||||
movec cacr,d0
|
||||
move.l d0,(a0)+
|
||||
movec caar,d0
|
||||
move.l d0,(a0)+
|
||||
movec msp,d0
|
||||
move.l d0,(a0)+
|
||||
.scend1:
|
||||
move.l a1,d0
|
||||
beq.s .scend2
|
||||
cmp.w #1,d1
|
||||
bcs.s .scend2
|
||||
move.l (a1)+,d0
|
||||
movec d0,sfc
|
||||
move.l (a1)+,d0
|
||||
movec d0,dfc
|
||||
cmp.w #2,d1
|
||||
bcs.s .scend2
|
||||
move.l (a1)+,d0
|
||||
movec d0,cacr
|
||||
move.l (a1)+,d0
|
||||
movec d0,caar
|
||||
move.l (a1)+,d0
|
||||
move.c d0,msp
|
||||
.scend2:
|
||||
rts
|
||||
|
||||
_flushcache:
|
||||
movec cacr,d0
|
||||
bset #3,d0
|
||||
movec d0,cacr
|
||||
rts
|
||||
|
||||
| set and return old VBR
|
||||
_setvbr:
|
||||
move.l 4(sp),d1
|
||||
movec vbr,d0
|
||||
movec d1,vbr
|
||||
rts
|
||||
|
||||
| 68000 test entrypoint
|
||||
_execute_test000:
|
||||
movem.l d1-d7/a0-a6,-(sp)
|
||||
move.l 14*4+4(sp),a0 | register struct
|
||||
move.w sr,-(sp)
|
||||
lea datapointer(pc),a1
|
||||
move.l a0,(a1)+
|
||||
move.l sp,(a1)
|
||||
move.l S_SSP(a0),sp
|
||||
move.l S_PC(a0),a1
|
||||
move.l a1,-(sp)
|
||||
move.w (a1)+,d0
|
||||
move.w (a1),d1
|
||||
eor.w d1,d0
|
||||
move.w d0,0xdff180 | opcode^first param = background color
|
||||
move.w S_SR+2(a0),-(sp)
|
||||
move.l S_AREG+7*4(a0),a1
|
||||
move.l a1,USP
|
||||
movem.l (a0),d0-d7/a0-a6
|
||||
|
||||
| cmp.l #0x,0x7a0000
|
||||
| bne.s .not
|
||||
| clr.w 0x100
|
||||
|.not:
|
||||
|
||||
rte
|
||||
|
||||
| 68010+ test entrypoint
|
||||
_execute_test010:
|
||||
movem.l d1-d7/a0-a6,-(sp)
|
||||
move.l 14*4+4(sp),a0 | register struct
|
||||
move.w sr,-(sp)
|
||||
lea datapointer(pc),a1
|
||||
move.l a0,(a1)+
|
||||
move.l sp,(a1)
|
||||
move.l S_SSP(a0),sp
|
||||
move.l S_PC(a0),a1
|
||||
clr.w -(sp)
|
||||
move.l a1,-(sp)
|
||||
move.w (a1)+,d0
|
||||
move.w (a1),d1
|
||||
eor.w d1,d0
|
||||
move.w d0,0xdff180 | opcode^first param = background color
|
||||
move.w S_SR+2(a0),-(sp)
|
||||
move.l S_AREG+7*4(a0),a1
|
||||
move.l a1,USP
|
||||
movem.l (a0),d0-d7/a0-a6
|
||||
rte
|
||||
|
||||
| 68020 test entrypoint
|
||||
_execute_test020:
|
||||
movem.l d1-d7/a0-a6,-(sp)
|
||||
move.l 14*4+4(sp),a0 | register struct
|
||||
move.w sr,-(sp)
|
||||
lea datapointer(pc),a1
|
||||
move.l a0,(a1)+
|
||||
move.l sp,(a1)
|
||||
move.l S_SSP(a0),sp
|
||||
move.l S_PC(a0),a1
|
||||
clr.w -(sp)
|
||||
move.l a1,-(sp)
|
||||
move.w (a1)+,d0
|
||||
move.w (a1),d1
|
||||
eor.w d1,d0
|
||||
move.w d0,0xdff180 | opcode^first param = background color
|
||||
move.w S_SR+2(a0),-(sp)
|
||||
move.l S_AREG+7*4(a0),a1
|
||||
move.l a1,USP
|
||||
move.l S_MSP(a0),a1
|
||||
movec a1,MSP
|
||||
movem.l (a0),d0-d7/a0-a6
|
||||
rte
|
||||
|
||||
| 68020+FPU test entrypoint
|
||||
_execute_testfpu:
|
||||
movem.l d1-d7/a0-a6,-(sp)
|
||||
move.l 14*4+4(sp),a0 | register struct
|
||||
move.w sr,-(sp)
|
||||
lea datapointer(pc),a1
|
||||
move.l a0,(a1)+
|
||||
move.l sp,(a1)
|
||||
move.l S_SSP(a0),sp
|
||||
move.l S_PC(a0),a1
|
||||
clr.w -(sp)
|
||||
move.l a1,-(sp)
|
||||
move.w (a1)+,d0
|
||||
move.w (a1),d1
|
||||
eor.w d1,d0
|
||||
move.w d0,0xdff180 | opcode^first param = background color
|
||||
move.w S_SR+2(a0),-(sp)
|
||||
move.l S_AREG+7*4(a0),a1
|
||||
move.l a1,USP
|
||||
move.l S_MSP(a0),a1
|
||||
movec a1,MSP
|
||||
fmovem.x S_FPU(a0),fp0-fp7
|
||||
lea S_FPIAR(a0),a1
|
||||
fmove.l (a1)+,fpiar
|
||||
fmove.l (a1)+,fpcr
|
||||
fmove.l (a1)+,fpsr
|
||||
movem.l (a0),d0-d7/a0-a6
|
||||
rte
|
||||
|
||||
|
||||
_exceptiontable000:
|
||||
bsr.s exception | 3
|
||||
bsr.s exception | 4
|
||||
bsr.s exception | 5
|
||||
bsr.s exception | 6
|
||||
bsr.s exception | 7
|
||||
bsr.s exception | 8
|
||||
bsr.s exception | 9
|
||||
bsr.s exception | 10
|
||||
bsr.s exception | 11
|
||||
bsr.s exception | 12
|
||||
bsr.s exception | 13
|
||||
bsr.s exception | 14
|
||||
bsr.s exception | 15
|
||||
bsr.s exception | 16
|
||||
bsr.s exception | 17
|
||||
bsr.s exception | 18
|
||||
bsr.s exception | 19
|
||||
bsr.s exception | 20
|
||||
bsr.s exception | 21
|
||||
bsr.s exception | 22
|
||||
bsr.s exception | 23
|
||||
bsr.s exception | 24
|
||||
bsr.s exception | 25
|
||||
bsr.s exception | 26
|
||||
bsr.s exception | 27
|
||||
bsr.s exception | 28
|
||||
bsr.s exception | 29
|
||||
bsr.s exception | 30
|
||||
bsr.s exception | 31
|
||||
bsr.s exception | 32
|
||||
bsr.s exception | 33
|
||||
bsr.s exception | 34
|
||||
bsr.s exception | 35
|
||||
bsr.s exception | 36
|
||||
bsr.s exception | 37
|
||||
bsr.s exception | 38
|
||||
bsr.s exception | 30
|
||||
bsr.s exception | 40
|
||||
bsr.s exception | 41
|
||||
bsr.s exception | 42
|
||||
bsr.s exception | 43
|
||||
bsr.s exception | 44
|
||||
bsr.s exception | 45
|
||||
bsr.s exception | 46
|
||||
bsr.s exception | 47
|
||||
nop
|
||||
exception:
|
||||
move.l a0,-(sp)
|
||||
move.l datapointer(pc),a0
|
||||
movem.l d0-d7/a0-a6,(a0)
|
||||
move.l (sp)+,8*4(a0)
|
||||
move.l (sp)+,d0
|
||||
lea _exceptiontable000(pc),a1
|
||||
sub.l a1,d0
|
||||
lsr.w #1,d0
|
||||
addq.w #2,d0
|
||||
move.w d0,S_EXC+2(a0)
|
||||
|
||||
cmp.w #3,d0
|
||||
bne.s .noaddresserror
|
||||
move.w (sp),S_EXC+0(a0)
|
||||
addq.w #8,sp
|
||||
.noaddresserror:
|
||||
move.w (sp)+,S_SR+2(a0)
|
||||
move.l (sp)+,S_PC(a0)
|
||||
|
||||
move.l USP,a1
|
||||
move.l a1,S_AREG+7*4(a0)
|
||||
|
||||
move.l superstack(pc),sp
|
||||
move.w (sp)+,sr
|
||||
movem.l (sp)+,d1-d7/a0-a6
|
||||
rts
|
||||
|
||||
_exception010:
|
||||
move.l a0,-(sp)
|
||||
move.l datapointer(pc),a0
|
||||
movem.l d0-d7/a0-a6,(a0)
|
||||
move.l (sp)+,8*4(a0)
|
||||
|
||||
move.w (sp)+,S_SR+2(a0)
|
||||
move.l (sp)+,S_PC(a0)
|
||||
move.w (sp),d0
|
||||
and.w #0xfff,d0
|
||||
lsr.w #2,d0
|
||||
move.w d0,S_EXC+2(a0)
|
||||
|
||||
move.l USP,a1
|
||||
move.l a1,S_AREG+7*4(a0)
|
||||
|
||||
move.l superstack(pc),sp
|
||||
move.w (sp)+,sr
|
||||
movem.l (sp)+,d1-d7/a0-a6
|
||||
rts
|
||||
|
||||
_exception020:
|
||||
move.l a0,-(sp)
|
||||
move.l datapointer(pc),a0
|
||||
movem.l d0-d7/a0-a6,(a0)
|
||||
move.l (sp)+,8*4(a0)
|
||||
|
||||
move.w (sp)+,S_SR+2(a0)
|
||||
move.l (sp)+,S_PC(a0)
|
||||
move.w (sp),d0
|
||||
and.w #0xfff,d0
|
||||
lsr.w #2,d0
|
||||
move.w d0,S_EXC+2(a0)
|
||||
|
||||
movec MSP,a1
|
||||
move.l a1,S_MSP(a0)
|
||||
move.l USP,a1
|
||||
move.l a1,S_AREG+7*4(a0)
|
||||
|
||||
| restore SR first, then stack
|
||||
| M-bit may have been set.
|
||||
move.l superstack(pc),a0
|
||||
move.w (a0)+,sr
|
||||
move.l a0,sp
|
||||
movem.l (sp)+,d1-d7/a0-a6
|
||||
rts
|
||||
|
||||
_exceptionfpu:
|
||||
move.l a0,-(sp)
|
||||
move.l datapointer(pc),a0
|
||||
movem.l d0-d7/a0-a6,(a0)
|
||||
move.l (sp)+,8*4(a0)
|
||||
|
||||
move.w (sp)+,S_SR+2(a0)
|
||||
move.l (sp)+,S_PC(a0)
|
||||
move.w (sp),d0
|
||||
and.w #0xfff,d0
|
||||
lsr.w #2,d0
|
||||
move.w d0,S_EXC+2(a0)
|
||||
|
||||
movec MSP,a1
|
||||
move.l a1,S_MSP(a0)
|
||||
move.l USP,a1
|
||||
move.l a1,S_AREG+7*4(a0)
|
||||
|
||||
fmovem.x fp0-fp7,S_FPU(a0)
|
||||
lea S_FPIAR(a0),a1
|
||||
fmove.l fpiar,(a1)+
|
||||
fmove.l fpcr,(a1)+
|
||||
fmove.l fpsr,(a1)+
|
||||
|
||||
move.l superstack(pc),a0
|
||||
move.w (a0)+,sr
|
||||
move.l a0,sp
|
||||
movem.l (sp)+,d1-d7/a0-a6
|
||||
rts
|
||||
|
||||
datapointer:
|
||||
dc.l 0
|
||||
superstack:
|
||||
dc.l 0
|
||||
35
cputest/cputest_defines.h
Normal file
35
cputest/cputest_defines.h
Normal file
@ -0,0 +1,35 @@
|
||||
|
||||
#define CT_FPREG 0
|
||||
#define CT_DREG 0
|
||||
#define CT_AREG 8
|
||||
#define CT_SSP 16
|
||||
#define CT_MSP 17
|
||||
#define CT_SR 18
|
||||
#define CT_PC 19
|
||||
#define CT_FPIAR 20
|
||||
#define CT_FPSR 21
|
||||
#define CT_FPCR 22
|
||||
#define CT_MEMWRITE 30
|
||||
#define CT_MEMWRITES 31
|
||||
#define CT_DATA_MASK 31
|
||||
#define CT_EXCEPTION_MASK 63
|
||||
|
||||
#define CT_SIZE_BYTE (0 << 5)
|
||||
#define CT_SIZE_WORD (1 << 5)
|
||||
#define CT_SIZE_LONG (2 << 5)
|
||||
#define CT_SIZE_FPU (3 << 5) // CT_DREG -> CT_FPREG
|
||||
#define CT_SIZE_MASK (3 << 5)
|
||||
|
||||
// if MEMWRITE or PC
|
||||
#define CT_RELATIVE_START_WORD (0 << 5) // word
|
||||
#define CT_ABSOLUTE_WORD (1 << 5)
|
||||
#define CT_ABSOLUTE_LONG (2 << 5)
|
||||
// if MEMWRITES
|
||||
#define CT_PC_BYTES (3 << 5)
|
||||
// if PC
|
||||
#define CT_RELATIVE_START_BYTE (3 << 5)
|
||||
|
||||
#define CT_END 0x80
|
||||
#define CT_END_FINISH 0xff
|
||||
#define CT_END_INIT (0x80 | 0x40)
|
||||
#define CT_END_SKIP (0x80 | 0x40 | 0x01)
|
||||
66
cputest/cputestgen.ini
Normal file
66
cputest/cputestgen.ini
Normal file
@ -0,0 +1,66 @@
|
||||
|
||||
[cputest]
|
||||
|
||||
; CPU model (68000, 68020).
|
||||
; Always select 68020 when testing FPU instructions, even if test hardware CPU is 68040 or 68060.
|
||||
cpu=68000
|
||||
|
||||
; FPU model (empty string or 0, 68881, 68882, 68040, 68060)
|
||||
; Enable only when testing FPU. Enabled FPU mode will slow down execution.
|
||||
fpu=
|
||||
|
||||
; Write generated instructions to standard output. Always disabled in "all" mode.
|
||||
verbose=1
|
||||
|
||||
; Where to generate test files
|
||||
path=data/
|
||||
|
||||
; Low address space limits (0x0000 to 0x8000 is complete space)
|
||||
test_low_memory_start=0x0000
|
||||
test_low_memory_end=0x8000
|
||||
|
||||
; High address space limits (0x00ff8000 to 0x01000000 is complete space)
|
||||
test_high_memory_start=0x00ff8000
|
||||
test_high_memory_end=0x01000000
|
||||
|
||||
; ROM high address space
|
||||
high_rom=D:\amiga\roms\Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom
|
||||
|
||||
; main test memory start and size (real hardware must have RAM in same address space)
|
||||
test_memory_start=0x780000
|
||||
test_memory_size=0x080000
|
||||
|
||||
; test word or long odd data access address errors (68000/010 only)
|
||||
; 0 = do not generate address errors
|
||||
; 1 = include address errors
|
||||
; 2 = only generate test instructions that generate address errors
|
||||
feature_exception3_data=1
|
||||
|
||||
; test branches to odd addresses
|
||||
; same as above
|
||||
feature_exception3_instruction=1
|
||||
|
||||
; SR extra mask.
|
||||
; 0x8000 = T1
|
||||
; 0x4000 = T0 (68020)
|
||||
; 0x2000 = S
|
||||
; 0x1000 = M (68020)
|
||||
; Other bits are ignored.
|
||||
; For example 0xa000 adds 3 extra test rounds: S=1/T1=0, S=0/T1=1 and S=1/T1=1
|
||||
; Note: instructions that generate privilege violation exception will automatically add extra S=1 round.
|
||||
feature_sr_mask=0x0000
|
||||
|
||||
; 68020+ addressing modes (this makes test files much larger if other addressing modes are also enabled)
|
||||
; currently does not generate any reserved mode bit combinations.
|
||||
feature_full_extension_format=0
|
||||
|
||||
; empty = all addressing modes (feature_full_extension_format=1 enables 68020+ modes)
|
||||
; Dreg, Areg, Aind, Aipi, Apdi, Ad16, PC16, Ad8r, PC8r, absw, absl, imm.
|
||||
; Ad8rf and PC8rf = 68020+ full extension only. For example "Aind,Aipi,imm"
|
||||
; Note: FPU source EA is considered destination EA.
|
||||
feature_addressing_modes_src=
|
||||
feature_addressing_modes_dst=
|
||||
|
||||
; mnemonics separated by comma or all.
|
||||
; all = generate all. tst = generate tst.b, tst.w and tst.l. tst.l = generate only tst.l
|
||||
mode=abcd,mv2sr,mvsr2
|
||||
1478
cputest/main.c
Normal file
1478
cputest/main.c
Normal file
File diff suppressed because it is too large
Load Diff
26
cputest/makefile
Normal file
26
cputest/makefile
Normal file
@ -0,0 +1,26 @@
|
||||
|
||||
NOWDATE := "\"$(shell date "+%-d.%-m.%Y")\""
|
||||
NOWTIME := "\"$(shell date "+%T")\""
|
||||
|
||||
CC=/opt/amiga/bin/m68k-amigaos-gcc
|
||||
AS=/opt/amiga/bin/m68k-amigaos-as
|
||||
|
||||
CFLAGS = -mcrt=nix13 -O2 -m68000 -fomit-frame-pointer -msmall-code -msoft-float -DREVDATE=$(NOWDATE) -DREVTIME=$(NOWTIME) -DAMIGA
|
||||
LINK_CFLAGS = -mcrt=nix13 -lm -s
|
||||
|
||||
OBJS = main.o 68kDisass.o asm.o amiga.o
|
||||
|
||||
all: $(OBJS)
|
||||
$(CC) $(LINK_CFLAGS) -o cputest $^
|
||||
|
||||
main.o: main.c
|
||||
$(CC) $(CFLAGS) -I. -c -o $@ main.c
|
||||
|
||||
68kDisass.o: main.c
|
||||
$(CC) $(CFLAGS) -I. -c -o $@ 68kDisass.c
|
||||
|
||||
asm.o: asm.S
|
||||
$(AS) -m68020 -o $@ asm.S
|
||||
|
||||
amiga.o: amiga.S
|
||||
$(AS) -m68020 -o $@ amiga.S
|
||||
1160
cputest/msc_dirent.h
Normal file
1160
cputest/msc_dirent.h
Normal file
File diff suppressed because it is too large
Load Diff
100
cputest_support.cpp
Normal file
100
cputest_support.cpp
Normal file
@ -0,0 +1,100 @@
|
||||
|
||||
#include "sysconfig.h"
|
||||
#include "sysdeps.h"
|
||||
|
||||
#include "options.h"
|
||||
#include "memory.h"
|
||||
#include "newcpu.h"
|
||||
#include "fpp.h"
|
||||
|
||||
void my_trim(TCHAR *s)
|
||||
{
|
||||
int len;
|
||||
while (_tcslen(s) > 0 && _tcscspn(s, _T("\t \r\n")) == 0)
|
||||
memmove(s, s + 1, (_tcslen(s + 1) + 1) * sizeof(TCHAR));
|
||||
len = _tcslen(s);
|
||||
while (len > 0 && _tcscspn(s + len - 1, _T("\t \r\n")) == 0)
|
||||
s[--len] = '\0';
|
||||
}
|
||||
|
||||
void write_log(const TCHAR *format, ...)
|
||||
{
|
||||
|
||||
}
|
||||
void f_out(void *f, const TCHAR *format, ...)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
TCHAR *buf_out(TCHAR *buffer, int *bufsize, const TCHAR *format, ...)
|
||||
{
|
||||
int count;
|
||||
va_list parms;
|
||||
va_start(parms, format);
|
||||
|
||||
if (buffer == NULL)
|
||||
return 0;
|
||||
count = _vsntprintf(buffer, (*bufsize) - 1, format, parms);
|
||||
va_end(parms);
|
||||
*bufsize -= _tcslen(buffer);
|
||||
return buffer + _tcslen(buffer);
|
||||
}
|
||||
|
||||
void fpux_restore(int *v)
|
||||
{
|
||||
}
|
||||
void fp_init_native(void)
|
||||
{
|
||||
wprintf(_T("fp_init_native called!"));
|
||||
exit(0);
|
||||
}
|
||||
void fp_init_native_80(void)
|
||||
{
|
||||
wprintf(_T("fp_init_native_80 called!"));
|
||||
exit(0);
|
||||
}
|
||||
void init_fpucw_x87(void)
|
||||
{
|
||||
}
|
||||
void init_fpucw_x87_80(void)
|
||||
{
|
||||
}
|
||||
|
||||
int debugmem_get_segment(uaecptr addr, bool *exact, bool *ext, TCHAR *out, TCHAR *name)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int debugmem_get_symbol(uaecptr addr, TCHAR *out, int maxsize)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int debugmem_get_sourceline(uaecptr addr, TCHAR *out, int maxsize)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
bool debugger_get_library_symbol(uaecptr base, uaecptr addr, TCHAR *out)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int debug_safe_addr(uaecptr addr, int size)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
void set_cpu_caches(bool flush)
|
||||
{
|
||||
}
|
||||
|
||||
void flush_icache(int v)
|
||||
{
|
||||
}
|
||||
|
||||
void mmu_tt_modified(void)
|
||||
{
|
||||
}
|
||||
|
||||
uae_u16 REGPARAM2 mmu_set_tc(uae_u16 tc)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
2067
disasm.cpp
Normal file
2067
disasm.cpp
Normal file
File diff suppressed because it is too large
Load Diff
41
fpp.cpp
41
fpp.cpp
@ -34,6 +34,12 @@
|
||||
#include "cpummu030.h"
|
||||
#include "debug.h"
|
||||
|
||||
#ifndef CPU_TESTER
|
||||
#define SUPPORT_MMU 1
|
||||
#else
|
||||
#define SUPPORT_MMU 0
|
||||
#endif
|
||||
|
||||
#include "softfloat/softfloat.h"
|
||||
|
||||
// global variable for JIT FPU
|
||||
@ -989,7 +995,7 @@ static void fp_unimp_datatype(uae_u16 opcode, uae_u16 extra, uae_u32 ea, uaecptr
|
||||
fsave_data.stag = 7; // undocumented
|
||||
} else {
|
||||
fpp_from_exten_fmovem(src, &fsave_data.et[0], &fsave_data.et[1], &fsave_data.et[2]);
|
||||
fsave_data.stag = get_ftag(src, (opclass == 0) ? -1U : size);
|
||||
fsave_data.stag = get_ftag(src, (opclass == 0) ? 0xffffffff : size);
|
||||
if (fsave_data.stag == 5) {
|
||||
fsave_data.et[0] = (size == 1) ? 0x3f800000 : 0x3c000000; // exponent for denormalized single and double
|
||||
}
|
||||
@ -1046,11 +1052,12 @@ static bool fault_if_no_fpu (uae_u16 opcode, uae_u16 extra, uaecptr ea, uaecptr
|
||||
#if EXCEPTION_FPP
|
||||
write_log (_T("no FPU: %04X-%04X PC=%08X\n"), opcode, extra, oldpc);
|
||||
#endif
|
||||
#if SUPPORT_MMU
|
||||
if (fpu_mmu_fixup) {
|
||||
m68k_areg (regs, mmufixup[0].reg) = mmufixup[0].value;
|
||||
mmufixup[0].reg = -1;
|
||||
|
||||
}
|
||||
#endif
|
||||
fpu_op_illg(opcode, ea, oldpc);
|
||||
return true;
|
||||
}
|
||||
@ -1358,17 +1365,21 @@ static int get_fp_value (uae_u32 opcode, uae_u16 extra, fpdata *src, uaecptr old
|
||||
break;
|
||||
case 3: // (An)+
|
||||
// Also needed by fault_if_no_fpu
|
||||
#if SUPPORT_MMU
|
||||
mmufixup[0].reg = reg;
|
||||
mmufixup[0].value = m68k_areg (regs, reg);
|
||||
fpu_mmu_fixup = true;
|
||||
#endif
|
||||
ad = m68k_areg (regs, reg);
|
||||
m68k_areg (regs, reg) += reg == 7 ? sz2[size] : sz1[size];
|
||||
break;
|
||||
case 4: // -(An)
|
||||
// Also needed by fault_if_no_fpu
|
||||
#if SUPPORT_MMU
|
||||
mmufixup[0].reg = reg;
|
||||
mmufixup[0].value = m68k_areg (regs, reg);
|
||||
fpu_mmu_fixup = true;
|
||||
#endif
|
||||
m68k_areg (regs, reg) -= reg == 7 ? sz2[size] : sz1[size];
|
||||
ad = m68k_areg (regs, reg);
|
||||
// 68060 no fpu -(an): EA points to -4, not -12 if extended precision
|
||||
@ -1576,17 +1587,21 @@ static int put_fp_value (fpdata *value, uae_u32 opcode, uae_u16 extra, uaecptr o
|
||||
break;
|
||||
case 3: // (An)+
|
||||
// Also needed by fault_if_no_fpu
|
||||
#if SUPPORT_MMU
|
||||
mmufixup[0].reg = reg;
|
||||
mmufixup[0].value = m68k_areg (regs, reg);
|
||||
fpu_mmu_fixup = true;
|
||||
#endif
|
||||
ad = m68k_areg (regs, reg);
|
||||
m68k_areg (regs, reg) += reg == 7 ? sz2[size] : sz1[size];
|
||||
break;
|
||||
case 4: // -(An)
|
||||
// Also needed by fault_if_no_fpu
|
||||
#if SUPPORT_MMU
|
||||
mmufixup[0].reg = reg;
|
||||
mmufixup[0].value = m68k_areg (regs, reg);
|
||||
fpu_mmu_fixup = true;
|
||||
#endif
|
||||
m68k_areg (regs, reg) -= reg == 7 ? sz2[size] : sz1[size];
|
||||
ad = m68k_areg (regs, reg);
|
||||
// 68060 no fpu -(an): EA points to -4, not -12 if extended precision
|
||||
@ -1866,7 +1881,7 @@ void fpuop_dbcc (uae_u32 opcode, uae_u16 extra)
|
||||
if (fault_if_no_6888x (opcode, extra, pc - 4))
|
||||
return;
|
||||
|
||||
disp = (uae_s32) (uae_s16) x_cp_next_iword ();
|
||||
disp = (uae_s32) (uae_s16)x_cp_next_iword();
|
||||
if (fault_if_no_fpu_u (opcode, extra, pc + disp, pc - 4))
|
||||
return;
|
||||
regs.fpiar = pc - 4;
|
||||
@ -2432,6 +2447,7 @@ static uaecptr fmovem2mem (uaecptr ad, uae_u32 list, int incr, int regdir)
|
||||
|
||||
// 68030 MMU state saving is annoying!
|
||||
if (currprefs.mmu_model == 68030) {
|
||||
#if SUPPORT_MMU
|
||||
int idx = 0;
|
||||
uae_u32 wrd[3];
|
||||
mmu030_state[1] |= MMU030_STATEFLAG1_MOVEM1;
|
||||
@ -2461,6 +2477,7 @@ static uaecptr fmovem2mem (uaecptr ad, uae_u32 list, int incr, int regdir)
|
||||
}
|
||||
list <<= 1;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
for (int r = 0; r < 8; r++) {
|
||||
uae_u32 wrd1, wrd2, wrd3;
|
||||
@ -2489,6 +2506,7 @@ static uaecptr fmovem2fpp (uaecptr ad, uae_u32 list, int incr, int regdir)
|
||||
int reg;
|
||||
|
||||
if (currprefs.mmu_model == 68030) {
|
||||
#if SUPPORT_MMU
|
||||
uae_u32 wrd[3];
|
||||
int idx = 0;
|
||||
mmu030_state[1] |= MMU030_STATEFLAG1_MOVEM1 | MMU030_STATEFLAG1_FMOVEM;
|
||||
@ -2522,6 +2540,7 @@ static uaecptr fmovem2fpp (uaecptr ad, uae_u32 list, int incr, int regdir)
|
||||
}
|
||||
list <<= 1;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
for (int r = 0; r < 8; r++) {
|
||||
uae_u32 wrd1, wrd2, wrd3;
|
||||
@ -3083,9 +3102,11 @@ void fpuop_arithmetic (uae_u32 opcode, uae_u16 extra)
|
||||
write_log(_T("FPUOP %04x %04x PC=%08x\n"), opcode, extra, M68K_GETPC);
|
||||
#endif
|
||||
fpuop_arithmetic2 (opcode, extra);
|
||||
#if SUPPORT_MMU
|
||||
if (fpu_mmu_fixup) {
|
||||
mmufixup[0].reg = -1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void get_features(void)
|
||||
@ -3099,6 +3120,8 @@ void fpu_clearstatus(void)
|
||||
fpp_clear_status();
|
||||
}
|
||||
|
||||
#ifndef CPU_TESTER
|
||||
|
||||
void fpu_modechange(void)
|
||||
{
|
||||
uae_u32 temp_ext[8][3];
|
||||
@ -3131,6 +3154,8 @@ void fpu_modechange(void)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if FPU_TEST
|
||||
|
||||
static void fpu_test(void)
|
||||
@ -3149,6 +3174,7 @@ static void fpu_test(void)
|
||||
|
||||
void fpu_reset (void)
|
||||
{
|
||||
#ifndef CPU_TESTER
|
||||
currprefs.fpu_mode = changed_prefs.fpu_mode;
|
||||
if (currprefs.fpu_mode > 0) {
|
||||
fp_init_softfloat(currprefs.fpu_model);
|
||||
@ -3170,10 +3196,15 @@ void fpu_reset (void)
|
||||
#ifdef MSVC_LONG_DOUBLE
|
||||
init_fpucw_x87_80();
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
fp_init_softfloat(currprefs.fpu_model);
|
||||
use_long_double = false;
|
||||
#endif
|
||||
|
||||
regs.fpiar = 0;
|
||||
regs.fpu_exp_state = 0;
|
||||
regs.fp_unimp_pend = 0;
|
||||
get_features();
|
||||
fpp_set_fpcr (0);
|
||||
fpp_set_fpsr (0);
|
||||
@ -3188,6 +3219,8 @@ void fpu_reset (void)
|
||||
|
||||
}
|
||||
|
||||
#ifndef CPU_TESTER
|
||||
|
||||
uae_u8 *restore_fpu (uae_u8 *src)
|
||||
{
|
||||
uae_u32 w1, w2, w3;
|
||||
@ -3326,3 +3359,5 @@ uae_u8 *save_fpu (int *len, uae_u8 *dstptr)
|
||||
*len = dst - dstbak;
|
||||
return dstbak;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
170
gencpu.cpp
170
gencpu.cpp
@ -18,6 +18,8 @@
|
||||
* Copyright 1995, 1996, 1997, 1998, 1999, 2000 Bernd Schmidt
|
||||
*/
|
||||
|
||||
#define CPU_TESTER 0
|
||||
|
||||
#include "sysconfig.h"
|
||||
#include "sysdeps.h"
|
||||
#include <ctype.h>
|
||||
@ -44,6 +46,8 @@ static int using_ce;
|
||||
static int using_tracer;
|
||||
static int using_waitstates;
|
||||
static int using_simple_cycles;
|
||||
static int using_debugmem;
|
||||
static int using_test;
|
||||
static int cpu_level, cpu_generic;
|
||||
static int count_read, count_write, count_cycles, count_ncycles;
|
||||
static int count_cycles_ce020;
|
||||
@ -814,7 +818,7 @@ static void setpc (const char *format, ...)
|
||||
|
||||
if (using_mmu)
|
||||
printf("\tm68k_setpci(%s);\n", buffer);
|
||||
else if (using_prefetch || using_prefetch_020)
|
||||
else if (using_prefetch || using_prefetch_020 || using_test)
|
||||
printf ("\tm68k_setpci_j(%s);\n", buffer);
|
||||
else
|
||||
printf ("\tm68k_setpc_j(%s);\n", buffer);
|
||||
@ -829,7 +833,7 @@ static void incpc (const char *format, ...)
|
||||
_vsnprintf (buffer, 1000 - 1, format, parms);
|
||||
va_end (parms);
|
||||
|
||||
if (using_mmu || using_prefetch || using_prefetch_020)
|
||||
if (using_mmu || using_prefetch || using_prefetch_020 || using_test)
|
||||
printf ("\tm68k_incpci (%s);\n", buffer);
|
||||
else
|
||||
printf ("\tm68k_incpc (%s);\n", buffer);
|
||||
@ -2337,14 +2341,13 @@ static void genmovemel_ce (uae_u16 opcode)
|
||||
int size = table68k[opcode].size == sz_long ? 4 : 2;
|
||||
printf ("\tuae_u16 mask = %s;\n", gen_nextiword (0));
|
||||
printf ("\tuae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;\n");
|
||||
printf ("\tuae_u32 v;\n");
|
||||
if (table68k[opcode].dmode == Ad8r || table68k[opcode].dmode == PC8r)
|
||||
addcycles000 (2);
|
||||
genamode (NULL, table68k[opcode].dmode, "dstreg", table68k[opcode].size, "src", 2, 1, GF_AA | GF_MOVE);
|
||||
start_brace ();
|
||||
if (table68k[opcode].size == sz_long) {
|
||||
printf ("\twhile (dmask) {\n");
|
||||
printf ("\t\tv = %s (srca) << 16;\n", srcw);
|
||||
printf ("\t\tuae_u32 v = %s (srca) << 16;\n", srcw);
|
||||
printf ("\t\tv |= %s (srca + 2);\n", srcw);
|
||||
printf ("\t\tm68k_dreg (regs, movem_index1[dmask]) = v;\n");
|
||||
printf ("\t\tsrca += %d;\n", size);
|
||||
@ -2352,7 +2355,7 @@ static void genmovemel_ce (uae_u16 opcode)
|
||||
addcycles000_nonce("\t\t", 8);
|
||||
printf ("\t}\n");
|
||||
printf ("\twhile (amask) {\n");
|
||||
printf ("\t\tv = %s (srca) << 16;\n", srcw);
|
||||
printf ("\t\tuae_u32 v = %s (srca) << 16;\n", srcw);
|
||||
printf ("\t\tv |= %s (srca + 2);\n", srcw);
|
||||
printf ("\t\tm68k_areg (regs, movem_index1[amask]) = v;\n");
|
||||
printf ("\t\tsrca += %d;\n", size);
|
||||
@ -3187,6 +3190,21 @@ static void resetvars (void)
|
||||
dstb = "put_byte";
|
||||
}
|
||||
}
|
||||
|
||||
if (using_test) {
|
||||
prefetch_word = "get_word_test_prefetch";
|
||||
srcwi = "get_wordi_test";
|
||||
srcl = "get_long_test";
|
||||
dstl = "put_long_test";
|
||||
srcw = "get_word_test";
|
||||
dstw = "put_word_test";
|
||||
srcb = "get_byte_test";
|
||||
dstb = "put_byte_test";
|
||||
do_cycles = "do_cycles_test";
|
||||
getpc = "m68k_getpci()";
|
||||
disp000 = "get_disp_ea_test";
|
||||
}
|
||||
|
||||
if (!dstld)
|
||||
dstld = dstl;
|
||||
if (!dstwd)
|
||||
@ -3771,6 +3789,7 @@ static void gen_opcode (unsigned int opcode)
|
||||
int dualprefetch = curi->dmode == absl && (curi->smode != Dreg && curi->smode != Areg && curi->smode != imm);
|
||||
|
||||
genamode (curi, curi->smode, "srcreg", curi->size, "src", 1, 0, 0);
|
||||
|
||||
flags = GF_MOVE | GF_APDI;
|
||||
//if (curi->size == sz_long && (curi->smode == Dreg || curi->smode == Areg))
|
||||
// flags &= ~GF_APDI;
|
||||
@ -3784,8 +3803,9 @@ static void gen_opcode (unsigned int opcode)
|
||||
fill_prefetch_next ();
|
||||
prefetch_done = 1;
|
||||
}
|
||||
|
||||
if (curi->mnemo == i_MOVE)
|
||||
genflags (flag_logical, curi->size, "src", "", "");
|
||||
genflags(flag_logical, curi->size, "src", "", "");
|
||||
|
||||
if (curi->size == sz_long) {
|
||||
if ((curi->dmode == Ad16 || curi->dmode == PC16) && curi->smode == imm) {
|
||||
@ -3940,9 +3960,9 @@ static void gen_opcode (unsigned int opcode)
|
||||
printf("\tuae_u16 sr = src;\n");
|
||||
}
|
||||
// STOP undocumented features:
|
||||
// if SR is not set:
|
||||
// if new SR S-bit is not set:
|
||||
// 68000 (68010?): Update SR, increase PC and then cause privilege violation exception (handled in newcpu)
|
||||
// 68000 (68010?): Traced STOP also runs 4 cycles faster.
|
||||
// 68000 (68010?): Traced STOP runs 4 cycles faster.
|
||||
// 68020 68030: STOP works normally
|
||||
// 68040 68060: Immediate privilege violation exception
|
||||
if ((cpu_level == 0 || cpu_level == 1) && using_ce) {
|
||||
@ -3989,7 +4009,9 @@ static void gen_opcode (unsigned int opcode)
|
||||
printf ("\t\tgoto %s;\n", endlabelstr);
|
||||
printf ("\t}\n");
|
||||
setpc ("pc");
|
||||
printf("\tbranch_stack_pop_rte(oldpc);\n");
|
||||
if (using_debugmem) {
|
||||
printf("\tbranch_stack_pop_rte(oldpc);\n");
|
||||
}
|
||||
makefromsr();
|
||||
} else if (cpu_level == 1 && using_prefetch) {
|
||||
// 68010
|
||||
@ -4019,7 +4041,9 @@ static void gen_opcode (unsigned int opcode)
|
||||
printf ("\t\tgoto %s;\n", endlabelstr);
|
||||
printf ("\t}\n");
|
||||
setpc ("newpc");
|
||||
printf("\tbranch_stack_pop_rte(oldpc);\n");
|
||||
if (using_debugmem) {
|
||||
printf("\tbranch_stack_pop_rte(oldpc);\n");
|
||||
}
|
||||
check_ipl ();
|
||||
need_endlabel = 1;
|
||||
} else {
|
||||
@ -4093,7 +4117,9 @@ static void gen_opcode (unsigned int opcode)
|
||||
printf ("\t\tgoto %s;\n", endlabelstr);
|
||||
printf ("\t}\n");
|
||||
setpc ("newpc");
|
||||
printf("\tbranch_stack_pop_rte(oldpc);\n");
|
||||
if (using_debugmem) {
|
||||
printf("\tbranch_stack_pop_rte(oldpc);\n");
|
||||
}
|
||||
check_ipl ();
|
||||
need_endlabel = 1;
|
||||
}
|
||||
@ -4173,7 +4199,7 @@ static void gen_opcode (unsigned int opcode)
|
||||
printf("\t\tgoto %s;\n", endlabelstr);
|
||||
printf("\t}\n");
|
||||
}
|
||||
if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce) {
|
||||
if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce && !using_test) {
|
||||
printf("\tm68k_do_rtsi_jit ();\n");
|
||||
} else if (using_mmu) {
|
||||
printf ("\tm68k_do_rts_mmu%s ();\n", mmu_postfix);
|
||||
@ -4190,8 +4216,10 @@ static void gen_opcode (unsigned int opcode)
|
||||
} else {
|
||||
printf ("\tm68k_do_rts ();\n");
|
||||
}
|
||||
printf("\tif (debugmem_trace)\n");
|
||||
printf("\t\tbranch_stack_pop_rts(pc);\n");
|
||||
if (using_debugmem) {
|
||||
printf("\tif (debugmem_trace)\n");
|
||||
printf("\t\tbranch_stack_pop_rts(pc);\n");
|
||||
}
|
||||
printf ("\tif (%s & 1) {\n", getpc);
|
||||
printf ("\t\tuaecptr faultpc = %s;\n", getpc);
|
||||
setpc ("pc");
|
||||
@ -4277,8 +4305,10 @@ static void gen_opcode (unsigned int opcode)
|
||||
} else {
|
||||
printf ("\t%s (m68k_areg (regs, 7), nextpc);\n", dstl);
|
||||
}
|
||||
printf("\tif (debugmem_trace)\n");
|
||||
printf("\t\tbranch_stack_push(oldpc, nextpc);\n");
|
||||
if (using_debugmem) {
|
||||
printf("\tif (debugmem_trace)\n");
|
||||
printf("\t\tbranch_stack_push(oldpc, nextpc);\n");
|
||||
}
|
||||
}
|
||||
count_write += 2;
|
||||
fill_prefetch_full_020 ();
|
||||
@ -4336,7 +4366,7 @@ static void gen_opcode (unsigned int opcode)
|
||||
addcycles000 (2);
|
||||
printf("\tuaecptr oldpc = %s;\n", getpc);
|
||||
printf("\tuaecptr nextpc = oldpc + %d;\n", m68k_pc_offset);
|
||||
if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce) {
|
||||
if (using_indirect > 0 && !using_ce020 && !using_prefetch_020 && !using_ce && !using_test) {
|
||||
printf("\tm68k_do_bsri_jit (nextpc, s);\n");
|
||||
} else if (using_mmu) {
|
||||
printf ("\tm68k_do_bsr_mmu%s (nextpc, s);\n", mmu_postfix);
|
||||
@ -4351,8 +4381,10 @@ static void gen_opcode (unsigned int opcode)
|
||||
} else {
|
||||
printf ("\tm68k_do_bsr (nextpc, s);\n");
|
||||
}
|
||||
printf("\tif (debugmem_trace)\n");
|
||||
printf("\t\tbranch_stack_push(oldpc, nextpc);\n");
|
||||
if (using_debugmem) {
|
||||
printf("\tif (debugmem_trace)\n");
|
||||
printf("\t\tbranch_stack_push(oldpc, nextpc);\n");
|
||||
}
|
||||
count_write += 2;
|
||||
clear_m68k_offset();
|
||||
fill_prefetch_full ();
|
||||
@ -4708,7 +4740,7 @@ bccl_not68020:
|
||||
printf ("\tcnt &= 63;\n");
|
||||
printf ("\tCLEAR_CZNV ();\n");
|
||||
printf ("\tif (cnt >= %d) {\n", bit_size (curi->size));
|
||||
printf ("\t\tval = %s & (uae_u32)-sign;\n", bit_mask (curi->size));
|
||||
printf ("\t\tval = %s & (uae_u32)(0 - sign);\n", bit_mask (curi->size));
|
||||
printf ("\t\tSET_CFLG (sign);\n");
|
||||
duplicate_carry (1);
|
||||
if (source_is_imm1_8 (curi))
|
||||
@ -4719,7 +4751,7 @@ bccl_not68020:
|
||||
printf ("\t\tSET_CFLG (val & 1);\n");
|
||||
duplicate_carry (1);
|
||||
printf ("\t\tval >>= 1;\n");
|
||||
printf ("\t\tval |= (%s << (%d - cnt)) & (uae_u32)-sign;\n",
|
||||
printf ("\t\tval |= (%s << (%d - cnt)) & (uae_u32)(0 - sign);\n",
|
||||
bit_mask (curi->size),
|
||||
bit_size (curi->size));
|
||||
printf ("\t\tval &= %s;\n", bit_mask (curi->size));
|
||||
@ -5570,14 +5602,15 @@ bccl_not68020:
|
||||
{
|
||||
if ((opcode & 0xfff8) == 0xf620) {
|
||||
/* MOVE16 (Ax)+,(Ay)+ */
|
||||
printf ("\tuae_u32 v[4];\n");
|
||||
printf ("\tuaecptr mems = m68k_areg (regs, srcreg) & ~15, memd;\n");
|
||||
printf ("\tdstreg = (%s >> 12) & 7;\n", gen_nextiword (0));
|
||||
printf ("\tmemd = m68k_areg (regs, dstreg) & ~15;\n");
|
||||
if (using_mmu >= 68040) {
|
||||
printf("\tuae_u32 v[4];\n");
|
||||
printf ("\tget_move16_mmu (mems, v);\n");
|
||||
printf ("\tput_move16_mmu (memd, v);\n");
|
||||
} else {
|
||||
printf("\tuae_u32 v[4];\n");
|
||||
printf ("\tv[0] = %s (mems);\n", srcl);
|
||||
printf ("\tv[1] = %s (mems + 4);\n", srcl);
|
||||
printf ("\tv[2] = %s (mems + 8);\n", srcl);
|
||||
@ -5592,18 +5625,19 @@ bccl_not68020:
|
||||
printf ("\tm68k_areg (regs, dstreg) += 16;\n");
|
||||
} else {
|
||||
/* Other variants */
|
||||
printf ("\tuae_u32 v[4];\n");
|
||||
genamode (curi, curi->smode, "srcreg", curi->size, "mems", 0, 2, 0);
|
||||
genamode (curi, curi->dmode, "dstreg", curi->size, "memd", 0, 2, 0);
|
||||
if (using_mmu == 68040) {
|
||||
printf ("\tget_move16_mmu (memsa, mmu040_move16);\n");
|
||||
printf ("\tput_move16_mmu (memda, mmu040_move16);\n");
|
||||
} else if (using_mmu == 68060) {
|
||||
printf("\tuae_u32 v[4];\n");
|
||||
printf ("\tget_move16_mmu (memsa, v);\n");
|
||||
printf ("\tput_move16_mmu (memda, v);\n");
|
||||
} else {
|
||||
printf ("\tmemsa &= ~15;\n");
|
||||
printf ("\tmemda &= ~15;\n");
|
||||
printf("\tuae_u32 v[4];\n");
|
||||
printf ("\tv[0] = %s (memsa);\n", srcl);
|
||||
printf ("\tv[1] = %s (memsa + 4);\n", srcl);
|
||||
printf ("\tv[2] = %s (memsa + 8);\n", srcl);
|
||||
@ -6043,6 +6077,70 @@ static void generate_func (const char *extra)
|
||||
fprintf (stblfile, "{ 0, 0 }};\n");
|
||||
}
|
||||
|
||||
#if CPU_TESTER
|
||||
|
||||
static void generate_cpu_test(int mode)
|
||||
{
|
||||
char fname[100];
|
||||
const char *extra = "_test", *extraup;
|
||||
int rp;
|
||||
int id = 90 + mode;
|
||||
|
||||
using_tracer = 0;
|
||||
extraup = "";
|
||||
postfix = id;
|
||||
|
||||
fprintf(stblfile, "#ifdef CPUEMU_%d%s\n", postfix, extraup);
|
||||
sprintf(fname, "cpuemu_%d%s.cpp", postfix, extra);
|
||||
if (freopen(fname, "wb", stdout) == NULL) {
|
||||
abort();
|
||||
}
|
||||
|
||||
using_exception_3 = 1;
|
||||
using_prefetch = 0;
|
||||
using_prefetch_020 = 0;
|
||||
using_ce = 0;
|
||||
using_ce020 = 0;
|
||||
using_mmu = 0;
|
||||
using_waitstates = 0;
|
||||
memory_cycle_cnt = 4;
|
||||
mmu_postfix = "";
|
||||
xfc_postfix = "";
|
||||
using_simple_cycles = 0;
|
||||
using_indirect = 1;
|
||||
cpu_generic = false;
|
||||
|
||||
cpu_level = 0;
|
||||
using_prefetch = 1;
|
||||
using_exception_3 = 1;
|
||||
using_simple_cycles = 1;
|
||||
|
||||
if (mode == 1) {
|
||||
cpu_level = 1;
|
||||
} else if (mode == 2) {
|
||||
cpu_level = 2;
|
||||
using_prefetch = 0;
|
||||
using_simple_cycles = 0;
|
||||
}
|
||||
|
||||
|
||||
read_counts();
|
||||
for (rp = 0; rp < nr_cpuop_funcs; rp++)
|
||||
opcode_next_clev[rp] = cpu_level;
|
||||
|
||||
printf("#include \"cputest.h\"\n");
|
||||
if (!mode) {
|
||||
fprintf(stblfile, "#include \"cputest.h\"\n");
|
||||
}
|
||||
|
||||
fprintf(stblfile, "const struct cputbl CPUFUNC(op_smalltbl_%d%s)[] = {\n", postfix, extra);
|
||||
endlabelno = id;
|
||||
generate_func(extra);
|
||||
fprintf(stblfile, "#endif /* CPUEMU_%d%s */\n", postfix, extraup);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static void generate_cpu (int id, int mode)
|
||||
{
|
||||
char fname[100];
|
||||
@ -6232,8 +6330,6 @@ static void generate_cpu (int id, int mode)
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
read_table68k ();
|
||||
do_merges ();
|
||||
|
||||
@ -6247,18 +6343,34 @@ int main(int argc, char *argv[])
|
||||
* cputbl.h that way), but cpuopti can't cope. That could be fixed, but
|
||||
* I don't dare to touch the 68k version. */
|
||||
|
||||
headerfile = fopen ("cputbl.h", "wb");
|
||||
#if CPU_TESTER
|
||||
|
||||
stblfile = fopen ("cpustbl.cpp", "wb");
|
||||
generate_includes (stblfile, 0);
|
||||
using_test = 1;
|
||||
headerfile = fopen("cputbl_test.h", "wb");
|
||||
stblfile = fopen("cpustbl_test.cpp", "wb");
|
||||
generate_stbl = 1;
|
||||
generate_cpu_test(0);
|
||||
generate_cpu_test(1);
|
||||
generate_cpu_test(2);
|
||||
|
||||
for (i = 0; i <= 55; i++) {
|
||||
#else
|
||||
|
||||
using_debugmem = 1;
|
||||
|
||||
headerfile = fopen("cputbl.h", "wb");
|
||||
|
||||
stblfile = fopen("cpustbl.cpp", "wb");
|
||||
generate_includes(stblfile, 0);
|
||||
|
||||
for (int i = 0; i <= 55; i++) {
|
||||
if ((i >= 6 && i < 11) || (i > 14 && i < 20) || (i > 25 && i < 31) || (i > 35 && i < 40))
|
||||
continue;
|
||||
generate_stbl = 1;
|
||||
generate_cpu (i, 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
free (table68k);
|
||||
return 0;
|
||||
}
|
||||
|
||||
58
include/cputest.h
Normal file
58
include/cputest.h
Normal file
@ -0,0 +1,58 @@
|
||||
|
||||
#include "sysconfig.h"
|
||||
#include "sysdeps.h"
|
||||
|
||||
#include "options.h"
|
||||
#include "memory.h"
|
||||
#include "newcpu.h"
|
||||
|
||||
#include "cputest/cputest_defines.h"
|
||||
|
||||
|
||||
typedef uae_u32 REGPARAM3 cpuop_func(uae_u32) REGPARAM;
|
||||
|
||||
#include "cputbl_test.h"
|
||||
|
||||
#define CPUFUNC(x) x##_ff
|
||||
#define SET_CFLG_ALWAYS(x) SET_CFLG(x)
|
||||
#define SET_NFLG_ALWAYS(x) SET_NFLG(x)
|
||||
|
||||
#define m68k_dreg(r,num) ((r).regs[(num)])
|
||||
#define m68k_areg(r,num) (((r).regs + 8)[(num)])
|
||||
|
||||
int cctrue(int);
|
||||
|
||||
extern const int areg_byteinc[];
|
||||
extern const int imm8_table[];
|
||||
|
||||
extern const struct cputbl op_smalltbl_90_test_ff[];
|
||||
extern const struct cputbl op_smalltbl_91_test_ff[];
|
||||
extern const struct cputbl op_smalltbl_92_test_ff[];
|
||||
|
||||
extern struct flag_struct regflags;
|
||||
|
||||
extern int movem_index1[256];
|
||||
extern int movem_index2[256];
|
||||
extern int movem_next[256];
|
||||
|
||||
uae_u16 get_word_test_prefetch(int);
|
||||
|
||||
void put_byte_test(uaecptr, uae_u32);
|
||||
void put_word_test(uaecptr, uae_u32);
|
||||
void put_long_test(uaecptr, uae_u32);
|
||||
|
||||
uae_u32 get_byte_test(uaecptr);
|
||||
uae_u32 get_word_test(uaecptr);
|
||||
uae_u32 get_long_test(uaecptr);
|
||||
|
||||
uae_u32 get_disp_ea_test(uae_u32, uae_u32);
|
||||
void m68k_incpci(int);
|
||||
uaecptr m68k_getpci(void);
|
||||
void m68k_setpci_j(uaecptr);
|
||||
void m68k_do_rtsi(void);
|
||||
void m68k_do_bsri(uaecptr, uae_s32);
|
||||
|
||||
void m68k_setstopped(void);
|
||||
void check_t0_trace(void);
|
||||
|
||||
void cpureset(void);
|
||||
10
include/disasm.h
Normal file
10
include/disasm.h
Normal file
@ -0,0 +1,10 @@
|
||||
uaecptr ShowEA (void *f, uaecptr pc, uae_u16 opcode, int reg, amodes mode, wordsizes size, TCHAR *buf, uae_u32 *eaddr, int safemode);
|
||||
uaecptr ShowEA_disp(uaecptr *pcp, uaecptr base, TCHAR *buffer, const TCHAR *name);
|
||||
void m68k_disasm_2 (TCHAR *buf, int bufsize, uaecptr pc, uaecptr *nextpc, int cnt, uae_u32 *seaddr, uae_u32 *deaddr, uaecptr lastpc, int safemode);
|
||||
void sm68k_disasm (TCHAR *instrname, TCHAR *instrcode, uaecptr addr, uaecptr *nextpc, uaecptr lastpc);
|
||||
uae_u32 REGPARAM2 op_illg_1(uae_u32 opcode);
|
||||
uae_u32 REGPARAM2 op_unimpl_1(uae_u32 opcode);
|
||||
|
||||
extern struct cpum2c m2cregs[];
|
||||
extern const TCHAR *fpuopcodes[];
|
||||
extern const TCHAR *fpsizes[];
|
||||
@ -552,6 +552,52 @@ STATIC_INLINE uae_u32 get_wordi(uaecptr addr)
|
||||
return memory_get_wordi(addr);
|
||||
}
|
||||
|
||||
// do split memory access if it can cross memory banks
|
||||
STATIC_INLINE uae_u32 get_long_compatible(uaecptr addr)
|
||||
{
|
||||
if ((addr &0xffff) < 0xfffd) {
|
||||
return memory_get_long(addr);
|
||||
} else if (addr & 1) {
|
||||
uae_u8 v0 = memory_get_byte(addr + 0);
|
||||
uae_u16 v1 = memory_get_word(addr + 1);
|
||||
uae_u8 v3 = memory_get_byte(addr + 3);
|
||||
return (v0 << 24) | (v1 << 8) | (v3 << 0);
|
||||
} else {
|
||||
uae_u16 v0 = memory_get_word(addr + 0);
|
||||
uae_u16 v1 = memory_get_word(addr + 2);
|
||||
return (v0 << 16) | (v1 << 0);
|
||||
}
|
||||
}
|
||||
STATIC_INLINE uae_u32 get_word_compatible(uaecptr addr)
|
||||
{
|
||||
if ((addr & 0xffff) < 0xffff) {
|
||||
return memory_get_word(addr);
|
||||
} else {
|
||||
uae_u8 v0 = memory_get_byte(addr + 0);
|
||||
uae_u8 v1 = memory_get_byte(addr + 1);
|
||||
return (v0 << 8) | (v1 << 0);
|
||||
}
|
||||
}
|
||||
STATIC_INLINE uae_u32 get_byte_compatible(uaecptr addr)
|
||||
{
|
||||
return memory_get_byte(addr);
|
||||
}
|
||||
STATIC_INLINE uae_u32 get_longi_compatible(uaecptr addr)
|
||||
{
|
||||
if ((addr & 0xffff) < 0xfffd) {
|
||||
return memory_get_longi(addr);
|
||||
} else {
|
||||
uae_u16 v0 = memory_get_wordi(addr + 0);
|
||||
uae_u16 v1 = memory_get_wordi(addr + 2);
|
||||
return (v0 << 16) | (v1 << 0);
|
||||
}
|
||||
}
|
||||
STATIC_INLINE uae_u32 get_wordi_compatible(uaecptr addr)
|
||||
{
|
||||
return memory_get_wordi(addr);
|
||||
}
|
||||
|
||||
|
||||
STATIC_INLINE uae_u32 get_long_jit(uaecptr addr)
|
||||
{
|
||||
#ifdef JIT
|
||||
@ -640,6 +686,35 @@ STATIC_INLINE void put_byte (uaecptr addr, uae_u32 b)
|
||||
memory_put_byte(addr, b);
|
||||
}
|
||||
|
||||
// do split memory access if it can cross memory banks
|
||||
STATIC_INLINE void put_long_compatible(uaecptr addr, uae_u32 l)
|
||||
{
|
||||
if ((addr & 0xffff) < 0xfffd) {
|
||||
memory_put_long(addr, l);
|
||||
} else if (addr & 1) {
|
||||
memory_put_byte(addr + 0, l >> 24);
|
||||
memory_put_word(addr + 1, l >> 8);
|
||||
memory_put_byte(addr + 3, l >> 0);
|
||||
} else {
|
||||
memory_put_word(addr + 0, l >> 16);
|
||||
memory_put_word(addr + 2, l >> 0);
|
||||
}
|
||||
}
|
||||
STATIC_INLINE void put_word_compatible(uaecptr addr, uae_u32 w)
|
||||
{
|
||||
if ((addr & 0xffff) < 0xffff) {
|
||||
memory_put_word(addr, w);
|
||||
} else {
|
||||
memory_put_byte(addr + 0, w >> 8);
|
||||
memory_put_byte(addr + 1, w >> 0);
|
||||
}
|
||||
}
|
||||
STATIC_INLINE void put_byte_compatible(uaecptr addr, uae_u32 b)
|
||||
{
|
||||
memory_put_byte(addr, b);
|
||||
}
|
||||
|
||||
|
||||
STATIC_INLINE void put_long_jit(uaecptr addr, uae_u32 l)
|
||||
{
|
||||
#ifdef JIT
|
||||
|
||||
@ -85,7 +85,7 @@ struct comptbl {
|
||||
#endif
|
||||
|
||||
extern uae_u32 REGPARAM3 op_illg (uae_u32) REGPARAM;
|
||||
extern void REGPARAM3 op_unimpl (uae_u16) REGPARAM;
|
||||
extern void REGPARAM3 op_unimpl (uae_u32) REGPARAM;
|
||||
|
||||
typedef uae_u8 flagtype;
|
||||
|
||||
|
||||
@ -105,7 +105,7 @@ extern struct instr {
|
||||
unsigned int dmode:5;
|
||||
unsigned int suse:1;
|
||||
unsigned int duse:1;
|
||||
unsigned int unused1:1;
|
||||
unsigned int ccuse:1;
|
||||
unsigned int clev:3, unimpclev:3;
|
||||
unsigned int isjmp:1;
|
||||
unsigned int unused2:1;
|
||||
|
||||
7
ini.cpp
7
ini.cpp
@ -347,7 +347,12 @@ bool ini_getval_multi(struct ini_data *ini, const TCHAR *section, const TCHAR *k
|
||||
TCHAR *out2 = NULL;
|
||||
if (!ini_getstring_multi(ini, section, key, &out2, ctx))
|
||||
return false;
|
||||
*v = _tstol(out2);
|
||||
if (_tcslen(out2) > 2 && out2[0] == '0' && _totupper(out2[1]) == 'X') {
|
||||
TCHAR *endptr;
|
||||
*v = _tcstol(out2 + 2, &endptr, 16);
|
||||
} else {
|
||||
*v = _tstol(out2);
|
||||
}
|
||||
xfree(out2);
|
||||
return true;
|
||||
}
|
||||
|
||||
2229
newcpu.cpp
2229
newcpu.cpp
File diff suppressed because it is too large
Load Diff
@ -12,6 +12,11 @@
|
||||
#include "cpummu030.h"
|
||||
#include "cpu_prefetch.h"
|
||||
|
||||
int get_cpu_model(void)
|
||||
{
|
||||
return currprefs.cpu_model;
|
||||
}
|
||||
|
||||
void val_move2c2 (int regno, uae_u32 val)
|
||||
{
|
||||
switch (regno) {
|
||||
@ -436,6 +441,7 @@ uae_u32 REGPARAM2 x_get_disp_ea_020 (uae_u32 base, int idx)
|
||||
regd = (uae_s32)(uae_s16)regd;
|
||||
regd <<= (dp >> 9) & 3;
|
||||
if (dp & 0x100) {
|
||||
|
||||
uae_s32 outer = 0;
|
||||
if (dp & 0x80)
|
||||
base = 0;
|
||||
@ -476,11 +482,15 @@ uae_u32 REGPARAM2 x_get_disp_ea_020 (uae_u32 base, int idx)
|
||||
} else {
|
||||
v = base + (uae_s32)((uae_s8)dp) + regd;
|
||||
}
|
||||
#ifndef CPU_TESTER
|
||||
if (cycles && currprefs.cpu_cycle_exact)
|
||||
x_do_cycles (cycles * cpucycleunit);
|
||||
#endif
|
||||
return v;
|
||||
}
|
||||
|
||||
#ifndef CPU_TESTER
|
||||
|
||||
uae_u32 REGPARAM2 x_get_disp_ea_ce030 (uae_u32 base, int idx)
|
||||
{
|
||||
uae_u16 dp = next_iword_030ce ();
|
||||
@ -612,6 +622,8 @@ uae_u32 REGPARAM2 x_get_disp_ea_040(uae_u32 base, int idx)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compute exact number of CPU cycles taken
|
||||
* by DIVU and DIVS on a 68000 processor.
|
||||
|
||||
242
od-win32/cputester/cputester.vcxproj
Normal file
242
od-win32/cputester/cputester.vcxproj
Normal file
@ -0,0 +1,242 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Test|Win32">
|
||||
<Configuration>Test</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Test|x64">
|
||||
<Configuration>Test</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<ProjectGuid>{EDD28611-EAD9-4EB5-A873-18160AC44434}</ProjectGuid>
|
||||
<RootNamespace>cputester</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<IncludePath>$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">
|
||||
<IncludePath>$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<IncludePath>$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<IncludePath>$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'">
|
||||
<IncludePath>$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<IncludePath>$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\include;..\..;..\</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);CPUEMU_90;CPUEMU_91;CPUEMU_92;CPU_TESTER</PreprocessorDefinitions>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\include;..\..;..\</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);CPUEMU_90;CPUEMU_91;CPUEMU_92;CPU_TESTER</PreprocessorDefinitions>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\include;..\..;..\</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);CPUEMU_90;CPUEMU_91;CPUEMU_92;CPU_TESTER</PreprocessorDefinitions>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\include;..\..;..\</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);CPUEMU_90;CPUEMU_91;CPUEMU_92;CPU_TESTER</PreprocessorDefinitions>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\include;..\..;..\</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);CPUEMU_90;CPUEMU_91;CPUEMU_92;CPU_TESTER</PreprocessorDefinitions>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>..\..\include;..\..;..\</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);CPUEMU_90;CPUEMU_91;CPUEMU_92;CPU_TESTER</PreprocessorDefinitions>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\cpudefs.cpp" />
|
||||
<ClCompile Include="..\..\cpuemu_90_test.cpp" />
|
||||
<ClCompile Include="..\..\cpuemu_91_test.cpp" />
|
||||
<ClCompile Include="..\..\cpuemu_92_test.cpp" />
|
||||
<ClCompile Include="..\..\cpustbl_test.cpp" />
|
||||
<ClCompile Include="..\..\cputest.cpp" />
|
||||
<ClCompile Include="..\..\cputest_support.cpp" />
|
||||
<ClCompile Include="..\..\disasm.cpp" />
|
||||
<ClCompile Include="..\..\fpp.cpp" />
|
||||
<ClCompile Include="..\..\fpp_softfloat.cpp" />
|
||||
<ClCompile Include="..\..\ini.cpp" />
|
||||
<ClCompile Include="..\..\newcpu_common.cpp" />
|
||||
<ClCompile Include="..\..\readcpu.cpp" />
|
||||
<ClCompile Include="..\..\softfloat\softfloat.cpp" />
|
||||
<ClCompile Include="..\..\softfloat\softfloat_decimal.cpp" />
|
||||
<ClCompile Include="..\..\softfloat\softfloat_fpsp.cpp" />
|
||||
<ClCompile Include="..\unicode.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
69
od-win32/cputester/cputester.vcxproj.filters
Normal file
69
od-win32/cputester/cputester.vcxproj.filters
Normal file
@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\softfloat">
|
||||
<UniqueIdentifier>{0ac04ffb-7253-4995-b1eb-8c49c2c61565}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\cpuemu_90_test.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\cputest.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\readcpu.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\cpudefs.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\cpustbl_test.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\disasm.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\cputest_support.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\unicode.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\cpuemu_92_test.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\newcpu_common.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\cpuemu_91_test.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ini.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\fpp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\fpp_softfloat.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\softfloat\softfloat.cpp">
|
||||
<Filter>Source Files\softfloat</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\softfloat\softfloat_decimal.cpp">
|
||||
<Filter>Source Files\softfloat</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\softfloat\softfloat_fpsp.cpp">
|
||||
<Filter>Source Files\softfloat</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
132
od-win32/cputester_m68k/cputester_m68k.vcxproj
Normal file
132
od-win32/cputester_m68k/cputester_m68k.vcxproj
Normal file
@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<ProjectGuid>{07609D0D-FE6B-4A84-8C87-F914A4566F6F}</ProjectGuid>
|
||||
<RootNamespace>cputesterm68k</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\cputest\68kDisass.c" />
|
||||
<ClCompile Include="..\..\cputest\main.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
25
od-win32/cputester_m68k/cputester_m68k.vcxproj.filters
Normal file
25
od-win32/cputester_m68k/cputester_m68k.vcxproj.filters
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\cputest\main.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\cputest\68kDisass.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -34,8 +34,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unpackers", "..\unpackers\u
|
||||
EndProject
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "wix", "..\wix\wix.wixproj", "{BE211CE1-3955-4674-A664-5038FC791980}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cputester", "..\cputester\cputester.vcxproj", "{EDD28611-EAD9-4EB5-A873-18160AC44434}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cputester_m68k", "..\cputester_m68k\cputester_m68k.vcxproj", "{07609D0D-FE6B-4A84-8C87-F914A4566F6F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
FullRelease|Mixed Platforms = FullRelease|Mixed Platforms
|
||||
FullRelease|Win32 = FullRelease|Win32
|
||||
FullRelease|x64 = FullRelease|x64
|
||||
@ -50,6 +57,12 @@ Global
|
||||
Test|x64 = Test|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|x64.Build.0 = Debug|x64
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -74,6 +87,11 @@ Global
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Test|Win32.Build.0 = Test|Win32
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Test|x64.ActiveCfg = Test|x64
|
||||
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Test|x64.Build.0 = Test|x64
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -90,6 +108,11 @@ Global
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Test|x64.ActiveCfg = Test|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -106,6 +129,11 @@ Global
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Test|x64.ActiveCfg = Test|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -122,6 +150,11 @@ Global
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Test|x64.ActiveCfg = Test|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -138,6 +171,11 @@ Global
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Test|x64.ActiveCfg = Test|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -154,6 +192,11 @@ Global
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Test|x64.ActiveCfg = Test|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -170,6 +213,11 @@ Global
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Test|x64.ActiveCfg = Test|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -186,6 +234,11 @@ Global
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Test|x64.ActiveCfg = Test|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -202,6 +255,11 @@ Global
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Test|x64.ActiveCfg = Test|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.FullRelease|Mixed Platforms.ActiveCfg = FullRelease|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.FullRelease|Mixed Platforms.Build.0 = FullRelease|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
|
||||
@ -218,6 +276,11 @@ Global
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Test|x64.ActiveCfg = Test|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.FullRelease|Win32.ActiveCfg = Release|Win32
|
||||
@ -234,6 +297,11 @@ Global
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Test|x64.ActiveCfg = Test|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.FullRelease|Win32.ActiveCfg = Release|Win32
|
||||
@ -250,6 +318,12 @@ Global
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Test|x64.ActiveCfg = Test|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|x64.Build.0 = Debug|x64
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.FullRelease|Win32.ActiveCfg = Release|Win32
|
||||
@ -266,6 +340,12 @@ Global
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Test|x64.ActiveCfg = Test|x64
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|x64.Build.0 = Debug|x64
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.FullRelease|Win32.ActiveCfg = Release|Win32
|
||||
@ -282,6 +362,12 @@ Global
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Test|x64.ActiveCfg = Test|x64
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|x64.Build.0 = Debug|x64
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.FullRelease|Win32.ActiveCfg = Release|Win32
|
||||
@ -298,6 +384,9 @@ Global
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Test|Mixed Platforms.Build.0 = Test|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{98BA115B-829F-4085-9729-ABD0D779A60A}.Test|x64.ActiveCfg = Test|x64
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.Debug|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.Debug|Win32.ActiveCfg = Release|x86
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.Debug|x64.ActiveCfg = Release|x64
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.FullRelease|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.FullRelease|Mixed Platforms.Build.0 = Release|x86
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.FullRelease|Win32.ActiveCfg = Release|x86
|
||||
@ -313,6 +402,65 @@ Global
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.Test|Mixed Platforms.Build.0 = Release|x86
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.Test|Win32.ActiveCfg = Release|x86
|
||||
{BE211CE1-3955-4674-A664-5038FC791980}.Test|x64.ActiveCfg = Release|x86
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Debug|x64.Build.0 = Debug|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Win32.ActiveCfg = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|Win32.Build.0 = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|x64.ActiveCfg = Release|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.FullRelease|x64.Build.0 = Release|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Release|Win32.Build.0 = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Release|x64.ActiveCfg = Release|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Release|x64.Build.0 = Release|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.ReleaseXP|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.ReleaseXP|Mixed Platforms.Build.0 = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.ReleaseXP|Win32.ActiveCfg = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.ReleaseXP|Win32.Build.0 = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.ReleaseXP|x64.ActiveCfg = Release|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.ReleaseXP|x64.Build.0 = Release|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|Mixed Platforms.Build.0 = Release|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|Win32.ActiveCfg = Test|Win32
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|x64.ActiveCfg = Release|x64
|
||||
{EDD28611-EAD9-4EB5-A873-18160AC44434}.Test|x64.Build.0 = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Debug|x64.Build.0 = Debug|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Mixed Platforms.Build.0 = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Win32.ActiveCfg = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|Win32.Build.0 = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|x64.ActiveCfg = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.FullRelease|x64.Build.0 = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Release|Win32.Build.0 = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Release|x64.ActiveCfg = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Release|x64.Build.0 = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.ReleaseXP|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.ReleaseXP|Mixed Platforms.Build.0 = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.ReleaseXP|Win32.ActiveCfg = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.ReleaseXP|Win32.Build.0 = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.ReleaseXP|x64.ActiveCfg = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.ReleaseXP|x64.Build.0 = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|Mixed Platforms.Build.0 = Release|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|Win32.ActiveCfg = Debug|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|Win32.Build.0 = Debug|Win32
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|x64.ActiveCfg = Release|x64
|
||||
{07609D0D-FE6B-4A84-8C87-F914A4566F6F}.Test|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
<ProjectGuid>{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}</ProjectGuid>
|
||||
<RootNamespace>winuae</RootNamespace>
|
||||
<TargetPlatformVersion>8.1</TargetPlatformVersion>
|
||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'" Label="Configuration">
|
||||
@ -200,15 +200,15 @@
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseXP|x64'">winuae64</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Test|x64'">winuae64</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">winuae64</TargetName>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='ReleaseXP|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='ReleaseXP|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\dev\lib;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='ReleaseXP|Win32'">C:\dev\lib;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">C:\dev\lib;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\dev\lib;$(LibraryPath)</LibraryPath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<ReferencePath Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(VC_ReferencesPath_x86);</ReferencePath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">C:\dev\lib;$(LibraryPath)</LibraryPath>
|
||||
<EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</EmbedManifest>
|
||||
@ -216,15 +216,15 @@
|
||||
<EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">true</EmbedManifest>
|
||||
<EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</EmbedManifest>
|
||||
<EmbedManifest Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">true</EmbedManifest>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\dev\lib\x64;$(LibraryPath)</LibraryPath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='ReleaseXP|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Test|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='ReleaseXP|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Test|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\dev\lib\x64;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='ReleaseXP|x64'">C:\dev\lib\x64;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Test|x64'">C:\dev\lib\x64;$(LibraryPath)</LibraryPath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\ucrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\winrt;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\um;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\shared;$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.17763.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">$(MSBuildProgramFiles32)\Windows Kits\10\Include\10.0.18362.0\km;c:\dev\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">C:\dev\lib\x64;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'">
|
||||
@ -1080,6 +1080,7 @@
|
||||
<ClCompile Include="..\..\debugmem.cpp" />
|
||||
<ClCompile Include="..\..\def_icons.cpp" />
|
||||
<ClCompile Include="..\..\devices.cpp" />
|
||||
<ClCompile Include="..\..\disasm.cpp" />
|
||||
<ClCompile Include="..\..\dlopen.cpp" />
|
||||
<ClCompile Include="..\..\ethernet.cpp" />
|
||||
<ClCompile Include="..\..\events.cpp" />
|
||||
|
||||
@ -937,6 +937,9 @@
|
||||
<ClCompile Include="..\..\pcem\mouse_ps2.cpp">
|
||||
<Filter>x86</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\disasm.cpp">
|
||||
<Filter>win32</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\resources\35floppy.ico">
|
||||
|
||||
@ -264,12 +264,14 @@ out1:
|
||||
int usesrc = 0, usedst = 0;
|
||||
int srctype = 0;
|
||||
int srcpos = -1, dstpos = -1;
|
||||
int usecc = 0;
|
||||
|
||||
amodes srcmode = am_unknown, destmode = am_unknown;
|
||||
int srcreg = -1, destreg = -1;
|
||||
|
||||
for (i = 0; i < lastbit; i++)
|
||||
for (i = 0; i < lastbit; i++) {
|
||||
bitcnt[i] = bitval[i] = 0;
|
||||
}
|
||||
|
||||
vmsk = 1 << id.n_variable;
|
||||
|
||||
@ -285,6 +287,8 @@ out1:
|
||||
bitcnt[currbit]++;
|
||||
bitval[currbit] <<= 1;
|
||||
bitval[currbit] |= bit_set;
|
||||
if (currbit == bitC || currbit == bitc)
|
||||
usecc = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -717,6 +721,8 @@ endofline:
|
||||
table68k[opc].mnemo = lookuptab[find].mnemo;
|
||||
}
|
||||
table68k[opc].cc = bitval[bitc];
|
||||
table68k[opc].ccuse = usecc != 0;
|
||||
|
||||
mnemo = table68k[opc].mnemo;
|
||||
if (mnemo == i_BTST
|
||||
|| mnemo == i_BSET
|
||||
|
||||
@ -325,7 +325,7 @@ static int32_t getDecimalExponent(int32_t aExp, uint64_t aSig)
|
||||
zSig0 &= ~(((int64_t)(zSig1<<1) == 0) & 1);
|
||||
}
|
||||
|
||||
zExp = zSign ? -zSig0 : zSig0;
|
||||
zExp = zSign ? (0 - zSig0) : zSig0;
|
||||
|
||||
return zExp;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user