461 |
|
D(bug(" gpch 750 found\n")); |
462 |
|
|
463 |
|
// Don't use PTEST instruction in BlockMove() (7.5, 7.6, 7.6.1, 8.0) |
464 |
< |
static const uint8 dat[] = {0xa0, 0x8d, 0x0c, 0x81, 0x00, 0x00, 0x0c, 0x00, 0x65, 0x06, 0x4e, 0x71, 0xf4, 0xf8}; |
464 |
> |
static const uint8 dat[] = {0x20, 0x5f, 0x22, 0x5f, 0x0c, 0x38, 0x00, 0x04, 0x01, 0x2f}; |
465 |
|
base = find_rsrc_data(p, size, dat, sizeof(dat)); |
466 |
|
if (base) { |
467 |
< |
p16 = (uint16 *)(p + base + 8); |
468 |
< |
*p16 = htons(M68K_NOP); |
469 |
< |
FlushCodeCache(p + base + 8, 2); |
467 |
> |
p16 = (uint16 *)(p + base + 4); |
468 |
> |
*p16++ = htons(M68K_EMUL_OP_BLOCK_MOVE); |
469 |
> |
*p16++ = htons(0x7000); |
470 |
> |
*p16 = htons(M68K_RTS); |
471 |
> |
FlushCodeCache(p + base + 4, 6); |
472 |
|
D(bug(" patch 1 applied\n")); |
473 |
|
} |
474 |
|
|