summaryrefslogtreecommitdiff
path: root/cgstack.c
diff options
context:
space:
mode:
authorJohn van Groningen2006-01-20 15:14:28 +0000
committerJohn van Groningen2006-01-20 15:14:28 +0000
commit9853f63bb167c2e7679617ad59416d6fc9d67636 (patch)
treef3fd5a05860c4dc629f2cacdbeaf7d946632f99f /cgstack.c
parentoptimize cmp $0,r , generate test r,r instead (diff)
fix bugs in code generation for floating point computations for amd64
Diffstat (limited to 'cgstack.c')
-rw-r--r--cgstack.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/cgstack.c b/cgstack.c
index 9be4718..e99df94 100644
--- a/cgstack.c
+++ b/cgstack.c
@@ -1057,7 +1057,11 @@ static void b_stack_load_register_values (int n_parameters,ULONG vector[],int n_
#ifdef MORE_PARAMETER_REGISTERS
+ n_extra_data_parameter_registers
#endif
+#ifndef G_A64
: (mc68881_flag && number_of_f_register_parameters_m_2++<(N_FLOAT_PARAMETER_REGISTERS<<1)))
+#else
+ : (mc68881_flag && number_of_f_register_parameters_m_2++<N_FLOAT_PARAMETER_REGISTERS))
+#endif
{
if (*element_p!=NULL && (*element_p)->b_stack_offset==required_offset){
register struct b_stack *element;
@@ -1069,7 +1073,7 @@ static void b_stack_load_register_values (int n_parameters,ULONG vector[],int n_
element->b_stack_load_graph=graph;
}
element_p=&(*element_p)->b_stack_next;
- } else{
+ } else {
graph=g_load ((required_offset+global_block.block_graph_b_stack_begin_displacement)<<STACK_ELEMENT_LOG_SIZE,B_STACK_POINTER);
new_element=allocate_struct_from_heap (b_stack);