From 6207a53f5d3404eaebf20f3b2d38e91db0d0c8e8 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 6 Mar 2016 13:33:24 +0000 Subject: [PATCH] * never allocate odd numbered single-sized registers git-svn-id: trunk@33186 - --- compiler/arm/rgcpu.pas | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/arm/rgcpu.pas b/compiler/arm/rgcpu.pas index 1612ddc597..a8e77e602c 100644 --- a/compiler/arm/rgcpu.pas +++ b/compiler/arm/rgcpu.pas @@ -346,6 +346,11 @@ unit rgcpu; supreg:=getsupreg(reg); for i:=RS_D16 to RS_D31 do add_edge(supreg,i); + { further, we cannot use the odd single registers as the register + allocator cannot handle overlapping registers so far } + for i in [RS_S1,RS_S3,RS_S5,RS_S7,RS_S9,RS_S11,RS_S13,RS_S15,RS_S17,RS_S19, + RS_S21,RS_S23,RS_S25,RS_S27,RS_S29,RS_S31] do + add_edge(supreg,i); end; end; end;