Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <40700B4C02ABD5119F000090278766443BF294@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'Randall R Schulz'" , "Boehm, Hans" , "'tprince AT computer DOT org'" , tromey AT redhat DOT com Cc: "Billinghurst, David (CRTS)" , java AT gcc DOT gnu DOT org, cygwin AT cygwin DOT com Subject: RE: Object alignment, was: cygwin failures - assertion "!(addr & FLAGS)" failed: Date: Mon, 6 May 2002 14:50:32 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" > From: Randall R Schulz [mailto:rrschulz AT cris DOT com] > > Is there a reason that the three bits used for lock > management must be the > least significant three? The XSB interpreter (XSB is a Prolog > system) uses > even more bits, but doesn't demand that they be contiguous. > Depending on > the processor, machine and OS architecture, the tag bits XSB > needs (which > are classic data type tags) can be split and reassembled as needed. > Naturally, it can get costly to do this, but I assume that it > maximizes the > set of systems on which XSB can run while preserving as many bits as > possible for the actual (type-tagged) data values stored. > > Is there a reason a more flexible approach to "stolen" bits > cannot be taken > by GCJ? Not that I know of. I think it would be fairly easy to make this configurable. The code shouldn't rely on the position of those bits anyway, and I believe it doesn't. This may help with some embedded applications. Otherwise I'm not sure it would buy you much. On 64-bit processore, 8-byte alignment is generally required anyway. On 32-bit processors, I don't think you want to limit the address space any more than it already is. My guess is that allowing the code to be configured to require only 8 byte object spacing (by simply dropping the low order bits in the locking code) is a more general solution. Hans -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/