summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cgcode.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/cgcode.c b/cgcode.c
index 25c5283..bfacd23 100644
--- a/cgcode.c
+++ b/cgcode.c
@@ -3555,21 +3555,28 @@ void code_get_desc_arity (int a_offset)
INSTRUCTION_GRAPH graph_1,graph_2,graph_3,graph_4,graph_5,graph_6,graph_7;
graph_1=s_get_a (a_offset);
-#ifndef M68000
+#ifdef NEW_DESCRIPTORS
graph_2=g_load_id (0,graph_1);
- graph_3=g_load_i (-2);
+ graph_3=g_load_des_id (2-2,graph_2);
+ graph_4=g_add (graph_3,graph_2);
+ graph_7=g_load_des_id (6+DESCRIPTOR_ARITY_OFFSET,graph_4);
#else
+# ifndef M68000
+ graph_2=g_load_id (0,graph_1);
+ graph_3=g_load_i (-2);
+# else
graph_2=g_load_des_id (DESCRIPTOR_OFFSET,graph_1);
graph_3=g_g_register (GLOBAL_DATA_REGISTER);
-#endif
+# endif
graph_4=g_add (graph_3,graph_2);
-#ifdef GEN_MAC_OBJ
+# ifdef GEN_MAC_OBJ
graph_5=g_load_des_id (0,graph_4);
-#else
+# else
graph_5=g_load_des_id (2,graph_4);
-#endif
+# endif
graph_6=g_sub (graph_5,graph_4);
graph_7=g_load_des_id (DESCRIPTOR_ARITY_OFFSET,graph_6);
+#endif
s_push_b (graph_7);
}