Force implicit dependency on previous register version when accessing a partial register. Fixes graphics issues in Windows 95 on Packard Bell PB410A using built-in HT216 video.
This commit is contained in:
parent
16bc3bb6ec
commit
16a86adbf8
2 changed files with 7 additions and 2 deletions
|
|
@ -191,7 +191,7 @@ void codegen_reg_mark_as_required()
|
|||
}
|
||||
}
|
||||
|
||||
static int reg_is_native_size(ir_reg_t ir_reg)
|
||||
int reg_is_native_size(ir_reg_t ir_reg)
|
||||
{
|
||||
int native_size = ireg_data[IREG_GET_REG(ir_reg.reg)].native_size;
|
||||
int requested_size = IREG_GET_SIZE(ir_reg.reg);
|
||||
|
|
|
|||
|
|
@ -343,6 +343,8 @@ static inline ir_reg_t codegen_reg_read(int reg)
|
|||
return ireg;
|
||||
}
|
||||
|
||||
int reg_is_native_size(ir_reg_t ir_reg);
|
||||
|
||||
static inline ir_reg_t codegen_reg_write(int reg, int uop_nr)
|
||||
{
|
||||
ir_reg_t ireg;
|
||||
|
|
@ -357,7 +359,10 @@ static inline ir_reg_t codegen_reg_write(int reg, int uop_nr)
|
|||
|
||||
if (IREG_GET_REG(reg) > IREG_EBX && last_version && !reg_version[IREG_GET_REG(reg)][last_version].refcount &&
|
||||
!(reg_version[IREG_GET_REG(reg)][last_version].flags & REG_FLAGS_REQUIRED))
|
||||
add_to_dead_list(®_version[IREG_GET_REG(reg)][last_version], IREG_GET_REG(reg), last_version);
|
||||
{
|
||||
if (reg_is_native_size(ireg)) /*Non-native size registers have an implicit dependency on the previous version, so don't add to dead list*/
|
||||
add_to_dead_list(®_version[IREG_GET_REG(reg)][last_version], IREG_GET_REG(reg), last_version);
|
||||
}
|
||||
|
||||
reg_last_version[IREG_GET_REG(reg)]++;
|
||||
if (!reg_last_version[IREG_GET_REG(reg)])
|
||||
|
|
|
|||
Loading…
Reference in a new issue