memory. All functions writing values into the data area return the offset
relative the begin of the code area (start of procedure).
- $Id: codegen.inc 967 2004-03-18 14:29:03Z jowenn $
+ $Id: codegen.inc 1037 2004-04-26 16:36:48Z twisti $
*/
static branchref *xnullrefs; /* list of null check branches */
static branchref *xcastrefs; /* list of cast check branches */
static branchref *xdivrefs; /* list of divide by zero branches */
+static branchref *xoomrefs; /* list of out of memory branches */
static linenumberref *linenumberreferences; /*list of line numbers and the program counters of their first instruction*/
static s4 linenumbertablesizepos;
static s4 linenumbertablestartpos;
static void codegen_addxnullrefs(void *branchptr);
static void codegen_addxcastrefs(void *branchptr);
static void codegen_addxdivrefs(void *branchptr);
+static void codegen_addxoomrefs(void *branchptr);
static void codegen_threadcritstart(int offset);
static void codegen_threadcritstop(int offset);
xnullrefs = NULL;
xcastrefs = NULL;
xdivrefs = NULL;
+ xoomrefs = NULL;
#if defined(USE_THREADS) && defined(NATIVE_THREADS)
threadcritcurrent.next = NULL;
+static void codegen_addxoomrefs(void *branchptr)
+{
+ s4 branchpos = (u1*) branchptr - mcodebase;
+
+ branchref *br = DNEW(branchref);
+
+ br->branchpos = branchpos;
+ br->next = xoomrefs;
+ xoomrefs = br;
+}
+
+
static void codegen_addxdivrefs(void *branchptr)
{
s4 branchpos = (u1*) branchptr - mcodebase;
}
-
static void codegen_createlinenumbertable() {
#ifdef __I386__
/*log_text("codegen_createlinnumbertable");*/
memory. All functions writing values into the data area return the offset
relative the begin of the code area (start of procedure).
- $Id: codegen.inc 967 2004-03-18 14:29:03Z jowenn $
+ $Id: codegen.inc 1037 2004-04-26 16:36:48Z twisti $
*/
static branchref *xnullrefs; /* list of null check branches */
static branchref *xcastrefs; /* list of cast check branches */
static branchref *xdivrefs; /* list of divide by zero branches */
+static branchref *xoomrefs; /* list of out of memory branches */
static linenumberref *linenumberreferences; /*list of line numbers and the program counters of their first instruction*/
static s4 linenumbertablesizepos;
static s4 linenumbertablestartpos;
static void codegen_addxnullrefs(void *branchptr);
static void codegen_addxcastrefs(void *branchptr);
static void codegen_addxdivrefs(void *branchptr);
+static void codegen_addxoomrefs(void *branchptr);
static void codegen_threadcritstart(int offset);
static void codegen_threadcritstop(int offset);
xnullrefs = NULL;
xcastrefs = NULL;
xdivrefs = NULL;
+ xoomrefs = NULL;
#if defined(USE_THREADS) && defined(NATIVE_THREADS)
threadcritcurrent.next = NULL;
+static void codegen_addxoomrefs(void *branchptr)
+{
+ s4 branchpos = (u1*) branchptr - mcodebase;
+
+ branchref *br = DNEW(branchref);
+
+ br->branchpos = branchpos;
+ br->next = xoomrefs;
+ xoomrefs = br;
+}
+
+
static void codegen_addxdivrefs(void *branchptr)
{
s4 branchpos = (u1*) branchptr - mcodebase;
}
-
static void codegen_createlinenumbertable() {
#ifdef __I386__
/*log_text("codegen_createlinnumbertable");*/