diff options
| author | 2025-12-18 17:53:55 +0100 | |
|---|---|---|
| committer | 2025-12-18 17:53:55 +0100 | |
| commit | cf95d1a9a9f9dacbe38dee2f753615c091ba6319 (patch) | |
| tree | ec3f1226f24a669d2f97898224e4540586dc4243 /x86_64 | |
| parent | eed64a3a5d6aadccf35423e715fe8da90062300e (diff) | |
regalloc+emit: get rid of xsave/xrestore hack
Was used for situation where we needed to spill more than 1 temporary
and have to use a register that is already used. Instead of push/pop, we
can just allocate and set aside specific stack slots for this purpose.
Also, reworked linearscan() interval sets to separate FPR/GPR intervals.
Diffstat (limited to 'x86_64')
| -rw-r--r-- | x86_64/emit.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/x86_64/emit.c b/x86_64/emit.c index 89585b8..125cef5 100644 --- a/x86_64/emit.c +++ b/x86_64/emit.c @@ -1164,12 +1164,6 @@ emitinstr(uchar **pcode, struct function *fn, struct block *blk, int curi, struc Xxor(pcode, cls, l, r); } break; - case Oxsave: - Xpush(pcode, mkregoper(ins->l).reg); - break; - case Oxrestore: - Xpop(pcode, mkregoper(ins->l).reg); - break; case Ocall: Xcall(pcode, KPTR, ref2oper(ins->l)); break; |