aboutsummaryrefslogtreecommitdiffhomepage
path: root/x86_64/emit.c
diff options
context:
space:
mode:
author lemon<lsof@mailbox.org>2025-12-18 17:53:55 +0100
committer lemon<lsof@mailbox.org>2025-12-18 17:53:55 +0100
commitcf95d1a9a9f9dacbe38dee2f753615c091ba6319 (patch)
treeec3f1226f24a669d2f97898224e4540586dc4243 /x86_64/emit.c
parenteed64a3a5d6aadccf35423e715fe8da90062300e (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/emit.c')
-rw-r--r--x86_64/emit.c6
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;