summaryrefslogtreecommitdiff
path: root/src/arch/arm/v7/core.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-05-21 16:48:11 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-05-21 16:48:11 (GMT)
commitacd355c4c5ae25fb9cac64b8dc17407a2bcc979b (patch)
treed5b43201049116cd9734ff554e61ed8a7e0084cc /src/arch/arm/v7/core.c
parent4691a434a34a19317156a761967f719e408b73bb (diff)
Refined the whole share system for operands.
Diffstat (limited to 'src/arch/arm/v7/core.c')
-rw-r--r--src/arch/arm/v7/core.c57
1 files changed, 56 insertions, 1 deletions
diff --git a/src/arch/arm/v7/core.c b/src/arch/arm/v7/core.c
index 299b9bd..ee43366 100644
--- a/src/arch/arm/v7/core.c
+++ b/src/arch/arm/v7/core.c
@@ -24,6 +24,17 @@
#include "core.h"
+#include "register.h"
+#include "operands/coproc.h"
+#include "operands/estate.h"
+#include "operands/limitation.h"
+#include "operands/maccess.h"
+#include "operands/offset.h"
+#include "operands/reglist.h"
+#include "operands/rotation.h"
+#include "operands/shift.h"
+
+
/******************************************************************************
* *
@@ -41,7 +52,31 @@ bool init_armv7_core(void)
{
bool result; /* Bilan à renvoyer */
- result = true;
+ result = init_armv7_register_sharing();
+
+ if (result)
+ result = init_armv7_coproc_operand_sharing();
+
+ if (result)
+ result = init_armv7_endian_operand_sharing();
+
+ if (result)
+ result = init_armv7_limitation_operand_sharing();
+
+ if (result)
+ result = init_armv7_maccess_operand_sharing();
+
+ if (result)
+ result = init_armv7_offset_operand_sharing();
+
+ if (result)
+ result = init_armv7_reglist_operand_sharing();
+
+ if (result)
+ result = init_armv7_rotation_operand_sharing();
+
+ if (result)
+ result = init_armv7_shift_operand_sharing();
return result;
@@ -62,6 +97,16 @@ bool init_armv7_core(void)
#ifdef DEBUG_DUMP_STATS
void dump_armv7_share_stats(void)
{
+ dump_armv7_register_share_stats();
+
+ dump_armv7_coproc_operand_share_stats();
+ dump_armv7_endian_operand_share_stats();
+ dump_armv7_limitation_operand_share_stats();
+ dump_armv7_maccess_operand_share_stats();
+ dump_armv7_offset_operand_share_stats();
+ dump_armv7_reglist_operand_share_stats();
+ dump_armv7_rotation_operand_share_stats();
+ dump_armv7_shift_operand_share_stats();
}
#endif
@@ -81,5 +126,15 @@ void dump_armv7_share_stats(void)
void exit_armv7_core(void)
{
+ exit_armv7_register_sharing();
+
+ exit_armv7_coproc_operand_sharing();
+ exit_armv7_endian_operand_sharing();
+ exit_armv7_limitation_operand_sharing();
+ exit_armv7_maccess_operand_sharing();
+ exit_armv7_offset_operand_sharing();
+ exit_armv7_reglist_operand_sharing();
+ exit_armv7_rotation_operand_sharing();
+ exit_armv7_shift_operand_sharing();
}