summaryrefslogtreecommitdiff
path: root/cgcode.c
diff options
context:
space:
mode:
authorJohn van Groningen2006-03-24 10:52:33 +0000
committerJohn van Groningen2006-03-24 10:52:33 +0000
commit149725317e0cf2cc2e3d91573d810e7ba18c72d8 (patch)
tree6f707d8b5f3cff0f841a6c3ffc6bfdf994fd6cc2 /cgcode.c
parentimprove computation of used registers for reading from arrays, prevents (diff)
fix entier for 64 bit processors
Diffstat (limited to 'cgcode.c')
-rw-r--r--cgcode.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/cgcode.c b/cgcode.c
index 8602702..6c561e4 100644
--- a/cgcode.c
+++ b/cgcode.c
@@ -476,20 +476,18 @@ static void code_monadic_sane_operator (LABEL *label)
graph=g_lea (label2);
#endif
-#ifdef G_A64
s_push_b (s_get_b (0));
+#ifdef G_A64
s_put_b (1,NULL);
- insert_basic_block (JSR_BLOCK,0,1+1,r_vector,label);
#else
- s_push_b (s_get_b (0));
s_put_b (1,s_get_b (2));
# ifdef M68000
s_put_b (2,graph);
# else
s_put_b (2,NULL);
# endif
- insert_basic_block (JSR_BLOCK,0,2+1,r_vector,label);
#endif
+ insert_basic_block (JSR_BLOCK,0,SIZE_OF_REAL_IN_STACK_ELEMENTS+1,r_vector,label);
#ifdef M68000
new_label=fast_memory_allocate_type (struct block_label);
@@ -2014,11 +2012,17 @@ void code_entierR (VOID)
code_monadic_sane_operator (entier_real_label);
else {
#endif
+#ifdef G_A64
+ s_push_b (s_get_b (0));
+ s_put_b (1,NULL);
+ insert_basic_block (JSR_BLOCK,0,1+1,r_vector,entier_real_label);
+#else
s_push_b (s_get_b (0));
s_put_b (1,s_get_b (2));
s_put_b (2,NULL);
insert_basic_block (JSR_BLOCK,0,2+1,r_vector,entier_real_label);
+#endif
#ifdef M68000
}
#endif