summaryrefslogtreecommitdiff
path: root/cglin.c
diff options
context:
space:
mode:
authorJohn van Groningen2004-06-11 11:13:37 +0000
committerJohn van Groningen2004-06-11 11:13:37 +0000
commit473d9b43cb6270def3da8c0dbf4986ab64e0325a (patch)
tree340d101d4e8c649c8a5b2ae9eeedec78bff4dc5a /cglin.c
parentoptimize code generation for x+c,c+x,x-c and c-x array indices (diff)
improve code generation for xor on processors other than the M68000
Diffstat (limited to 'cglin.c')
-rw-r--r--cglin.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/cglin.c b/cglin.c
index 605951e..b9b9f32 100644
--- a/cglin.c
+++ b/cglin.c
@@ -2909,6 +2909,7 @@ static void linearize_dyadic_commutative_data_operator (int i_instruction_code,I
register_node (graph,reg_1);
}
+#ifdef M68000
static void linearize_eor_operator (INSTRUCTION_GRAPH graph,ADDRESS *ad_p)
{
register INSTRUCTION_GRAPH graph_1,graph_2;
@@ -2949,6 +2950,7 @@ static void linearize_eor_operator (INSTRUCTION_GRAPH graph,ADDRESS *ad_p)
if (*ad_p->ad_count_p>1)
register_node (graph,reg_1);
}
+#endif
static int compare_node (INSTRUCTION_GRAPH graph,int i_test_1,int i_test_2)
{
@@ -7499,7 +7501,11 @@ static void linearize_graph (INSTRUCTION_GRAPH graph,ADDRESS *ad_p)
linearize_dyadic_commutative_data_operator (IOR,graph,ad_p);
return;
case GEOR:
+#ifdef M68000
linearize_eor_operator (graph,ad_p);
+#else
+ linearize_dyadic_commutative_data_operator (IEOR,graph,ad_p);
+#endif
return;
case GSUB:
linearize_dyadic_non_commutative_operator (ISUB,graph,ad_p);