Fixed two recompiler bugs pointed out by mooch;
Fixed corruption on 86F recompression; Fixed CRC64 calculation on 86F writeback.
This commit is contained in:
@@ -20,5 +20,5 @@ enum
|
||||
|
||||
#define NR_HOST_REGS 4
|
||||
extern int host_reg_mapping[NR_HOST_REGS];
|
||||
#define NR_HOST_XMM_REGS 7
|
||||
#define NR_HOST_XMM_REGS 8
|
||||
extern int host_reg_xmm_mapping[NR_HOST_XMM_REGS];
|
||||
|
@@ -17,7 +17,7 @@ enum
|
||||
|
||||
#define NR_HOST_REGS 4
|
||||
extern int host_reg_mapping[NR_HOST_REGS];
|
||||
#define NR_HOST_XMM_REGS 7
|
||||
#define NR_HOST_XMM_REGS 8
|
||||
extern int host_reg_xmm_mapping[NR_HOST_XMM_REGS];
|
||||
|
||||
extern uint32_t mem_load_addr_ea_b;
|
||||
|
@@ -2609,6 +2609,7 @@ void d86f_writeback(int drive)
|
||||
|
||||
fseek(d86f[drive].f, 0, SEEK_END);
|
||||
len = ftell(d86f[drive].f);
|
||||
len -= header_size;
|
||||
|
||||
fseek(d86f[drive].f, header_size, SEEK_SET);
|
||||
|
||||
@@ -2637,8 +2638,10 @@ void d86f_writeback(int drive)
|
||||
fseek(cf, 8, SEEK_SET);
|
||||
fwrite(&crc64, 1, 8, cf);
|
||||
|
||||
fseek(cf, 0, SEEK_SET);
|
||||
d86f[drive].filebuf = (uint8_t *) malloc(len);
|
||||
fread(d86f[drive].filebuf, 1, len, cf);
|
||||
*(uint64_t *) &(d86f[drive].filebuf[8]) = 0xffffffffffffffff;
|
||||
|
||||
crc64 = (uint64_t) crc64speed(0, d86f[drive].filebuf, len);
|
||||
free(d86f[drive].filebuf);
|
||||
@@ -2660,8 +2663,10 @@ void d86f_writeback(int drive)
|
||||
fseek(d86f[drive].f, 8, SEEK_SET);
|
||||
fwrite(&crc64, 1, 8, d86f[drive].f);
|
||||
|
||||
fseek(d86f[drive].f, 0, SEEK_SET);
|
||||
d86f[drive].filebuf = (uint8_t *) malloc(len);
|
||||
fread(d86f[drive].filebuf, 1, len, d86f[drive].f);
|
||||
*(uint64_t *) &(d86f[drive].filebuf[8]) = 0xffffffffffffffff;
|
||||
|
||||
crc64 = (uint64_t) crc64speed(0, d86f[drive].filebuf, len);
|
||||
free(d86f[drive].filebuf);
|
||||
|
Reference in New Issue
Block a user