summaryrefslogtreecommitdiff
path: root/cgcalc.c
diff options
context:
space:
mode:
authorJohn van Groningen2005-10-06 09:37:28 +0000
committerJohn van Groningen2005-10-06 09:37:28 +0000
commit9dfa57d8b8d2466a0fcef6fd28790d317932633e (patch)
treee59f6c3bdc40739558bd4730a4f78049ce1b8c5e /cgcalc.c
parenttest for GNEG in mark_graph_1 for all platforms (diff)
use new apply and new descriptors for IA32,
add addLU and subLU instructions for IA32
Diffstat (limited to 'cgcalc.c')
-rw-r--r--cgcalc.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/cgcalc.c b/cgcalc.c
index d45d35a..7c88f00 100644
--- a/cgcalc.c
+++ b/cgcalc.c
@@ -2552,9 +2552,14 @@ void calculate_graph_register_uses (INSTRUCTION_GRAPH graph)
if (graph_0->order_mode==R_NOMODE)
if (graph_0->instruction_code==GMULUD)
calculate_mulud_operator (graph_0);
- else
+ else if ( graph_0->instruction_code==GDIVDU ||
+ graph_0->instruction_code==GADDDU ||
+ graph_0->instruction_code==GSUBDU)
+ {
calculate_divdu_operator (graph_0);
-
+ } else
+ internal_error_in_function ("calculate_graph_register_uses");
+
graph->order_mode=R_DREGISTER;
graph->u_aregs=graph_0->u_aregs;
graph->u_dregs=graph_0->u_dregs;
@@ -2775,6 +2780,8 @@ void count_graph (INSTRUCTION_GRAPH graph)
++graph->node_count;
break;
#ifdef I486
+ case GADDDU:
+ case GSUBDU:
case GDIVDU:
if (++graph->node_count==1){
count_graph (graph->instruction_parameters[0].p);
@@ -2973,6 +2980,8 @@ void mark_graph_2 (register INSTRUCTION_GRAPH graph)
graph->node_mark=2;
break;
#ifdef I486
+ case GADDDU:
+ case GSUBDU:
case GDIVDU:
if (graph->node_mark<2){
graph->node_mark=2;