optimise away an unnecessary subtract on the instruction fetch fast path

This commit is contained in:
Rune Holm
2021-06-18 19:51:46 +01:00
parent ae4e0ae9f1
commit b91e0e809d
2 changed files with 3 additions and 3 deletions

View File

@@ -1265,7 +1265,7 @@ uint m68ki_read_imm6_addr_slowpath(uint32_t pc, address_translation_cache *cache
if(address >= read_addr[i] && address < read_upper[i]) {
cache->lower = read_addr[i] + pc_address_diff;
cache->upper = read_upper[i] + pc_address_diff;
cache->data = read_data[i];
cache->offset = read_data[i] - cache->lower;
REG_PC += 2;
return be16toh(((unsigned short *)(read_data[i] + (address - read_addr[i])))[0]);
}

View File

@@ -1079,7 +1079,7 @@ typedef struct
{
unsigned int lower;
unsigned int upper;
unsigned char *data;
unsigned char *offset;
} address_translation_cache;
@@ -1173,7 +1173,7 @@ static inline uint m68ki_read_imm_16(void)
if(pc >= cache->lower && pc < cache->upper)
{
REG_PC += 2;
return be16toh(((unsigned short *)(cache->data + (pc - cache->lower)))[0]);
return be16toh(((unsigned short *)(cache->offset + pc))[0]);
}
return m68ki_read_imm6_addr_slowpath(pc, cache);
}