nv50: cannot move from local mem to output reg directly
This commit is contained in:
parent
9b39fb1b61
commit
d4fd11a628
|
@ -57,6 +57,7 @@ nv50_indirect_opnd(struct nv_instruction *i)
|
||||||
switch (i->opcode) {
|
switch (i->opcode) {
|
||||||
case NV_OP_MOV:
|
case NV_OP_MOV:
|
||||||
case NV_OP_LDA:
|
case NV_OP_LDA:
|
||||||
|
case NV_OP_STA:
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -341,7 +342,7 @@ nv_print_program(struct nv_pc *pc)
|
||||||
nv_print_function(pc->root[i]);
|
nv_print_function(pc->root[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NV50_PC_DEBUG
|
#ifdef NV50PC_DEBUG
|
||||||
static void
|
static void
|
||||||
nv_do_print_cfgraph(struct nv_pc *pc, FILE *f, struct nv_basic_block *b)
|
nv_do_print_cfgraph(struct nv_pc *pc, FILE *f, struct nv_basic_block *b)
|
||||||
{
|
{
|
||||||
|
|
|
@ -327,7 +327,8 @@ nv_pass_fold_stores(struct nv_pass *ctx, struct nv_basic_block *b)
|
||||||
|
|
||||||
/* cannot write to $oX when using immediate */
|
/* cannot write to $oX when using immediate */
|
||||||
for (j = 0; j < 4 && nvi->src[j]; ++j)
|
for (j = 0; j < 4 && nvi->src[j]; ++j)
|
||||||
if (nvi->src[j]->value->reg.file == NV_FILE_IMM)
|
if (nvi->src[j]->value->reg.file == NV_FILE_IMM ||
|
||||||
|
nvi->src[j]->value->reg.file == NV_FILE_MEM_L)
|
||||||
break;
|
break;
|
||||||
if (j < 4 && nvi->src[j])
|
if (j < 4 && nvi->src[j])
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -220,7 +220,7 @@ nv_print_value(struct nv_value *value, struct nv_value *ind, ubyte type)
|
||||||
PRINT(" %s%cc%i", mgta, reg_pfx, nv_value_id(value));
|
PRINT(" %s%cc%i", mgta, reg_pfx, nv_value_id(value));
|
||||||
break;
|
break;
|
||||||
case NV_FILE_MEM_L:
|
case NV_FILE_MEM_L:
|
||||||
nv_print_address('l', -1, ind, 4 * nv_value_id(value));
|
nv_print_address('l', -1, ind, nv_value_id(value));
|
||||||
break;
|
break;
|
||||||
case NV_FILE_MEM_S:
|
case NV_FILE_MEM_S:
|
||||||
nv_print_address('s', -1, ind, 4 * nv_value_id(value));
|
nv_print_address('s', -1, ind, 4 * nv_value_id(value));
|
||||||
|
|
Loading…
Reference in New Issue