summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2007-09-05 14:41:21 +0000
committerJohn van Groningen2007-09-05 14:41:21 +0000
commit840159e1d8bf5281949ee08ac73f38fa3526ca20 (patch)
tree816689e4817afd3778ced7a87a2b40864f6d246f
parentallow ( , and ) in record type, add .desc0, get_desc0_number, (diff)
use optimized jmp_ap_upd only on IA32
-rw-r--r--cgcode.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/cgcode.c b/cgcode.c
index de605fa..2d408ca 100644
--- a/cgcode.c
+++ b/cgcode.c
@@ -4028,12 +4028,20 @@ void code_jmp_ap (int n_apply_args)
void code_jmp_ap_upd (int n_apply_args)
{
+#if defined (I486) && !defined (G_AI64)
char apupd_label_name[32];
code_d (1+n_apply_args,0,e_vector);
sprintf (apupd_label_name,"apupd_%d",n_apply_args);
code_jmp (apupd_label_name);
+#else
+ code_jsr_ap (n_apply_args);
+ code_fill_a (0,1);
+ s_remove_a();
+ code_d (1,0,e_vector);
+ code_rtn();
+#endif
}
void code_label (char *label_name);