On Thu, Nov 21, 2002 at 11:59:36AM -0500, Andy Dougherty wrote: > While compiling, I did get the warnings: > > "cpu_dep.c", line 24: warning: initializer does not fit or is out of > range: 0x91d02003 > "cpu_dep.c", line 26: warning: initializer does not fit or is out of > range: 0x81c3e008
That in itself shouldn't have mattered (signed/unsigned) but this version does fix the lexicals.t test failures. -- Jason
/* cpu_dep.c * Copyright: (When this is determined...it will go here) * CVS Info * $Id$ * Overview: * CPU dependent functions * Data Structure and Algorithms: * History: * Notes: * References: */ #include "parrot/parrot.h" void flush_register_windows(void){ #ifdef __sparc static union { int insns[4]; double align_hack[2]; } u = { { #ifdef __sparcv9 0x81580000, /* flushw */ #else 0x91d02003, /* ta ST_FLUSH_WINDOWS */ #endif 0x81c3e008, /* retl */ 0x01000000 /* nop */ } }; static void (*fn_ptr)(void) = (void (*)(void))&u.align_hack[0]; fn_ptr(); #else return; #endif }
? cpu_dep.c Index: MANIFEST =================================================================== RCS file: /cvs/public/parrot/MANIFEST,v retrieving revision 1.256 diff -u -r1.256 MANIFEST --- MANIFEST 21 Nov 2002 04:30:56 -0000 1.256 +++ MANIFEST 21 Nov 2002 22:55:03 -0000 @@ -1657,3 +1657,4 @@ vtable.tbl vtable_h.pl warnings.c +cpu_dep.c Index: dod.c =================================================================== RCS file: /cvs/public/parrot/dod.c,v retrieving revision 1.32 diff -u -r1.32 dod.c --- dod.c 6 Nov 2002 08:52:07 -0000 1.32 +++ dod.c 21 Nov 2002 22:55:03 -0000 @@ -20,6 +20,7 @@ int CONSERVATIVE_POINTER_CHASING = 0; #endif +extern flush_register_windows(void); static size_t find_common_mask(size_t val1, size_t val2); PMC * @@ -494,6 +495,9 @@ size_t mask = find_common_mask(buffer_min < pmc_min ? buffer_min : pmc_min, buffer_max > pmc_max ? buffer_max : pmc_max); + + /* Flush register windows if needed */ + flush_register_windows(); if (!lo_var_ptr) return last; Index: config/gen/makefiles/root.in =================================================================== RCS file: /cvs/public/parrot/config/gen/makefiles/root.in,v retrieving revision 1.58 diff -u -r1.58 root.in --- config/gen/makefiles/root.in 20 Nov 2002 17:46:47 -0000 1.58 +++ config/gen/makefiles/root.in 21 Nov 2002 22:55:03 -0000 @@ -106,7 +106,7 @@ packout$(O) byteorder$(O) debug$(O) smallobject$(O) \ headers$(O) dod$(O) method_util$(O) exit$(O) \ misc$(O) spf_render$(O) spf_vtable$(O) datatypes$(O) fingerprint$(O) \ - nci$(O) + nci$(O) cpu_dep$(O) O_FILES = $(INTERP_O_FILES) $(IO_O_FILES) $(CLASS_O_FILES) \ $(ENCODING_O_FILES) $(CHARTYPE_O_FILES) @@ -424,6 +424,8 @@ exit$(O) : $(GENERAL_H_FILES) exit.c nci$(O) : $(GENERAL_H_FILES) exit.c + +cpu_dep$(O) : $(GENERAL_H_FILES) #core_ops depends upon config.h so that it gets updated along with updates to config.h's version numbers core_ops.c $(INC)/oplib/core_ops.h : $(OPS_FILES) ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC)/config.h