summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-20 17:13:55 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-20 17:13:55 +0000
commit97059bf851de0ead7847206d508dab4cf3794191 (patch)
tree38ef3565fffeba8b238c118ef0356549307edf0d /gcc
parent871252994ea0ebb90208782f7ca526cfcb6f5196 (diff)
downloadgcc-97059bf851de0ead7847206d508dab4cf3794191.tar.gz
2008-04-20 Basile Starynkevitch <basile@starynkevitch.net>
* contrib/cold-basilys.lisp: the generated code is still sometimes buggy. We deliberately leave the bug and added COLD_EXTRAGAP in the generated code (& frames) to circumvent it. * gcc/melt/warm-basilys.bysl: The runtime bug below is a bug in cold-basilys.lisp generator. Still having an "output_c_code of CLASS_NREP_DATAKEYWORD" bug in warm bootstrap. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@134486 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog.melt7
-rw-r--r--gcc/melt/warm-basilys.bysl32
2 files changed, 33 insertions, 6 deletions
diff --git a/gcc/ChangeLog.melt b/gcc/ChangeLog.melt
index d95fd0646aa..d4bb9103bb8 100644
--- a/gcc/ChangeLog.melt
+++ b/gcc/ChangeLog.melt
@@ -1,8 +1,13 @@
2008-04-20 Basile Starynkevitch <basile@starynkevitch.net>
+ * melt/warm-basilys.bysl: The runtime bug below is a bug in
+ cold-basilys.lisp generator. Still having an "output_c_code of
+ CLASS_NREP_DATAKEYWORD" bug in warm bootstrap.
+
+2008-04-20 Basile Starynkevitch <basile@starynkevitch.net>
* basilys.h: (basilys_checked_assignmsg_at) better message.
* melt/warm-basilys.bysl: better handling of if/then/else typing.
- got a runtime bug.
+ got a runtime bug on warm bootstrap.
2008-04-19 Basile Starynkevitch <basile@starynkevitch.net>
* melt/warm-basilys.bysl: Added handling of arbitrary other ctypes
diff --git a/gcc/melt/warm-basilys.bysl b/gcc/melt/warm-basilys.bysl
index b21a355f12b..c35883b6a34 100644
--- a/gcc/melt/warm-basilys.bysl
+++ b/gcc/melt/warm-basilys.bysl
@@ -6998,23 +6998,32 @@
(add2sbuf_indentnl implbuf 0)
(if (>i nbval 0)
(progn
+ (add2sbuf_strconst implbuf "#define CURFRAM_NBVARPTR ")
+ (add2sbuf_longdec implbuf nbval)
+ (add2sbuf_indentnl implbuf 0)
(add2sbuf_strconst implbuf " void* varptr[")
(add2sbuf_longdec implbuf nbval)
(add2sbuf_strconst implbuf "];")
(add2sbuf_indentnl implbuf 0))
(progn
(add2sbuf_strconst implbuf "/*no varptr*/")
+ (add2sbuf_indentnl implbuf 0)
+ (add2sbuf_strconst implbuf "#define CURFRAM_NBVARPTR /*none*/0")
(add2sbuf_indentnl implbuf 0)))
(if (>i nblong 0)
(progn
+ (add2sbuf_strconst implbuf "#define CURFRAM_NBVARNUM ")
+ (add2sbuf_longdec implbuf nblong)
+ (add2sbuf_indentnl implbuf 0)
(add2sbuf_strconst implbuf " long varnum[")
(add2sbuf_longdec implbuf nblong)
(add2sbuf_strconst implbuf "];")
(add2sbuf_indentnl implbuf 0))
(progn
(add2sbuf_strconst implbuf "/*no varnum*/")
- (add2sbuf_indentnl implbuf 0))
- )
+ (add2sbuf_indentnl implbuf 0)
+ (add2sbuf_strconst implbuf "#define CURFRAM_NBVARNUM /*none*/0")
+ (add2sbuf_indentnl implbuf 0)))
(if others
(progn
(debugmsg others "output_curframe_init others" (the_callcount))
@@ -7186,6 +7195,10 @@
(add2sbuf_indentnl implbuf 0)
(add2sbuf_strconst implbuf "#undef callcount")
(add2sbuf_indentnl implbuf 0)
+ (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARNUM")
+ (add2sbuf_indentnl implbuf 0)
+ (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARPTR")
+ (add2sbuf_indentnl implbuf 0)
(add2sbuf_strconst implbuf "} /*end ")
(add2sbuf_string implbuf onam)
(add2sbuf_strconst implbuf "*/")
@@ -7275,6 +7288,11 @@
(add2sbuf_indentnl implbuf 0)
(add2sbuf_strconst implbuf "#undef callcount")
(add2sbuf_indentnl implbuf 0)
+ (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARNUM")
+ (add2sbuf_indentnl implbuf 0)
+ (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARPTR")
+ (add2sbuf_indentnl implbuf 0)
+ (add2sbuf_indentnl implbuf 0)
(add2sbuf_strconst implbuf "} /* end start_module_basilys */")
(add2sbuf_indentnl implbuf 0))
@@ -9271,10 +9289,11 @@
(nobj (unsafe_get_field :nuget_obj nugf))
(nfield (unsafe_get_field :nuget_field nugf))
(dlist (make_list discr_list))
+ (oobj (compile_obj nobj gcx))
(ogetslot (make_instance class_objgetslot
:obi_loc loc
:obdi_destlist dlist
- :ogetsl_obj (compile_obj nobj gcx)
+ :ogetsl_obj oobj
:ogetsl_field nfield))
)
(return ogetslot)
@@ -9551,11 +9570,14 @@
;; dont fill :obi_loc
:obdi_destlist destlis
:obcpt_expr explis
- )) )
+ ))
+ ;; we have a bug in the cold-basilys.lisp that we circumvent thru a useless variable
+ (unused_recvtype (unsafe_get_field :obv_type recv))
+ )
(list_append destlis desto)
(list_append explis recv)
; (debugmsg obc "putobjdest objval obc" (the_callcount))
- obc
+ (return obc)
))
(install_method class_objvalue put_objdest putobjdest_objvalue)