summaryrefslogtreecommitdiff
path: root/compiler/aarch64/rgcpu.pas
diff options
context:
space:
mode:
authornickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-18 01:58:34 +0000
committernickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-18 01:58:34 +0000
commit38b5e0606069cc5985e995e1da5b6855db67f507 (patch)
tree3396f758ef2cea5a0760aa73a6578a35c4fcac87 /compiler/aarch64/rgcpu.pas
parentc99242579a36e85923993a66ac396d7bb3747221 (diff)
parent003a6cf3bbb6833d60fdf0df1ad4d75449951a8e (diff)
downloadfpc-38b5e0606069cc5985e995e1da5b6855db67f507.tar.gz
* synchronized with trunk
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/unicodekvm@49224 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/aarch64/rgcpu.pas')
-rw-r--r--compiler/aarch64/rgcpu.pas8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/aarch64/rgcpu.pas b/compiler/aarch64/rgcpu.pas
index 268c0913fa..875cc04ee9 100644
--- a/compiler/aarch64/rgcpu.pas
+++ b/compiler/aarch64/rgcpu.pas
@@ -1,7 +1,7 @@
{
Copyright (c) 1998-2002 by Florian Klaempfl
- This unit implements the SPARC specific class for the register
+ This unit implements the AArch64 specific class for the register
allocator
This program is free software; you can redistribute it and/or modify
@@ -87,8 +87,8 @@ implementation
begin
helplist:=TAsmList.create;
- if getregtype(tempreg)=R_INTREGISTER then
- hreg:=tempreg
+ if (getregtype(tempreg)=R_INTREGISTER) then
+ hreg:=getregisterinline(helplist,[R_SUBWHOLE])
else
hreg:=cg.getaddressregister(helplist);
@@ -100,6 +100,8 @@ implementation
else
helpins:=spilling_create_store(tempreg,tmpref);
helplist.concat(helpins);
+ if (getregtype(tempreg)=R_INTREGISTER) then
+ ungetregisterinline(helplist,hreg);
add_cpu_interferences(helpins);
list.insertlistafter(pos,helplist);
helplist.free;