diff options
Diffstat (limited to 'src/cmd/6g/gsubr.c')
| -rw-r--r-- | src/cmd/6g/gsubr.c | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/src/cmd/6g/gsubr.c b/src/cmd/6g/gsubr.c index 2ad6535b1..bf043892c 100644 --- a/src/cmd/6g/gsubr.c +++ b/src/cmd/6g/gsubr.c @@ -288,6 +288,11 @@ regalloc(Node *n, Type *t, Node *o)  				goto out;  		yyerror("out of floating registers");  		goto err; + +	case TCOMPLEX64: +	case TCOMPLEX128: +		tempname(n, t); +		return;  	}  	yyerror("regalloc: unknown type %T", t); @@ -305,6 +310,8 @@ regfree(Node *n)  {  	int i; +	if(n->op == ONAME && iscomplex[n->type->etype]) +		return;  	if(n->op != OREGISTER && n->op != OINDREG)  		fatal("regfree: not a register");  	i = n->val.u.reg; | 
