From edc58d78d50c1956162403f0475b6dd0cdc1c030 Mon Sep 17 00:00:00 2001 From: florian Date: Mon, 26 Jan 2009 14:22:38 +0000 Subject: [PATCH] + support for arm special registers git-svn-id: trunk@12611 - --- compiler/arm/aasmcpu.pas | 1 + compiler/arm/armreg.dat | 3 +++ compiler/arm/rarmcon.inc | 1 + compiler/arm/rarmdwa.inc | 1 + compiler/arm/rarmnor.inc | 2 +- compiler/arm/rarmnum.inc | 3 ++- compiler/arm/rarmrni.inc | 3 ++- compiler/arm/rarmsri.inc | 1 + compiler/arm/rarmsta.inc | 1 + compiler/arm/rarmstd.inc | 3 ++- compiler/arm/rarmsup.inc | 1 + 11 files changed, 16 insertions(+), 4 deletions(-) diff --git a/compiler/arm/aasmcpu.pas b/compiler/arm/aasmcpu.pas index 21e1ba5d4b..36d8303d1b 100644 --- a/compiler/arm/aasmcpu.pas +++ b/compiler/arm/aasmcpu.pas @@ -87,6 +87,7 @@ uses OT_REG32 = $00201004; OT_REG64 = $00201008; OT_VREG = $00201010; { vector register } + OT_REGF = $00201020; { coproc register } OT_MEMORY = $00204000; { register number in 'basereg' } OT_MEM8 = $00204001; OT_MEM16 = $00204002; diff --git a/compiler/arm/armreg.dat b/compiler/arm/armreg.dat index 80b7fa00ab..7461065186 100644 --- a/compiler/arm/armreg.dat +++ b/compiler/arm/armreg.dat @@ -82,3 +82,6 @@ D14,$03,$00,d14,0,0 S30,$03,$00,s20,0,0 S31,$03,$00,s21,0,0 D15,$03,$00,d15,0,0 + +; special registers +CPSR_C,$04,$00,cpsr_c,0,0 diff --git a/compiler/arm/rarmcon.inc b/compiler/arm/rarmcon.inc index 910b6297dc..9cbdd0229f 100644 --- a/compiler/arm/rarmcon.inc +++ b/compiler/arm/rarmcon.inc @@ -72,3 +72,4 @@ NR_D14 = tregister($03000000); NR_S30 = tregister($03000000); NR_S31 = tregister($03000000); NR_D15 = tregister($03000000); +NR_CPSR_C = tregister($04000000); diff --git a/compiler/arm/rarmdwa.inc b/compiler/arm/rarmdwa.inc index b963effed4..135e860a80 100644 --- a/compiler/arm/rarmdwa.inc +++ b/compiler/arm/rarmdwa.inc @@ -71,4 +71,5 @@ 0, 0, 0, +0, 0 diff --git a/compiler/arm/rarmnor.inc b/compiler/arm/rarmnor.inc index 44c9e774d1..0c65b204c8 100644 --- a/compiler/arm/rarmnor.inc +++ b/compiler/arm/rarmnor.inc @@ -1,2 +1,2 @@ { don't edit, this file is generated from armreg.dat } -73 +74 diff --git a/compiler/arm/rarmnum.inc b/compiler/arm/rarmnum.inc index 78c00db232..49874d2652 100644 --- a/compiler/arm/rarmnum.inc +++ b/compiler/arm/rarmnum.inc @@ -71,4 +71,5 @@ tregister($03000000), tregister($03000000), tregister($03000000), tregister($03000000), -tregister($03000000) +tregister($03000000), +tregister($04000000) diff --git a/compiler/arm/rarmrni.inc b/compiler/arm/rarmrni.inc index f1de634d81..0a128d5e4c 100644 --- a/compiler/arm/rarmrni.inc +++ b/compiler/arm/rarmrni.inc @@ -71,4 +71,5 @@ 69, 70, 71, -72 +72, +73 diff --git a/compiler/arm/rarmsri.inc b/compiler/arm/rarmsri.inc index 8cbe04bfc1..8fb9326cad 100644 --- a/compiler/arm/rarmsri.inc +++ b/compiler/arm/rarmsri.inc @@ -1,5 +1,6 @@ { don't edit, this file is generated from armreg.dat } 0, +73, 27, 30, 57, diff --git a/compiler/arm/rarmsta.inc b/compiler/arm/rarmsta.inc index f72724eb6a..98c2e997c0 100644 --- a/compiler/arm/rarmsta.inc +++ b/compiler/arm/rarmsta.inc @@ -71,4 +71,5 @@ 0, 0, 0, +0, 0 diff --git a/compiler/arm/rarmstd.inc b/compiler/arm/rarmstd.inc index cf1936e398..7d50275003 100644 --- a/compiler/arm/rarmstd.inc +++ b/compiler/arm/rarmstd.inc @@ -71,4 +71,5 @@ 'd14', 's20', 's21', -'d15' +'d15', +'cpsr_c' diff --git a/compiler/arm/rarmsup.inc b/compiler/arm/rarmsup.inc index 9a92340b41..331258e4df 100644 --- a/compiler/arm/rarmsup.inc +++ b/compiler/arm/rarmsup.inc @@ -72,3 +72,4 @@ RS_D14 = $00; RS_S30 = $00; RS_S31 = $00; RS_D15 = $00; +RS_CPSR_C = $00;