[kaffe-siteadmin] CVS website (jserv): Members:
Kaffe CVS
cvs-commits at kaffe.org
Sat May 14 03:19:20 PDT 2005
PatchSet 214
Date: 2005/05/14 10:19:17
Author: jserv
Branch: HEAD
Tag: (none)
Log:
Edouard G. Parmelan died Monday September 17, 2001 in a motorbike accident while he was going to work. We make a copy of this document from his old website ( http://egp.free.fr/oldsite/port-kaffe/ ).
Members:
documentation.shtml:1.22->1.23
doc/port-kaffe/index.html:INITIAL->1.1
doc/port-kaffe/port-kaffe-0.1.html:INITIAL->1.1
doc/port-kaffe/port-kaffe-0.1.tar.gz:INITIAL->1.1
doc/port-kaffe/port-kaffe-0.2.html:INITIAL->1.1
doc/port-kaffe/port-kaffe-0.2.tar.gz:INITIAL->1.1
Index: website/documentation.shtml
diff -u website/documentation.shtml:1.22 website/documentation.shtml:1.23
--- website/documentation.shtml:1.22 Wed Apr 6 00:54:57 2005
+++ website/documentation.shtml Sat May 14 10:19:17 2005
@@ -215,9 +215,10 @@
<ul type="disc">
- <li><a href="http://egp.free.fr/port-kaffe/port-kaffe-0.2.html">Porting Kaffe to a new platform</a><p>
+ <li><a href="doc/port-kaffe/port-kaffe-0.2.html">Porting Kaffe to a new platform</a><p>
- By Edouard Parmelan.<p>
+ By Edouard Parmelan.<br>
+ NOTE: <a href="http://egp.free.fr/">Edouard G. Parmelan</a> died Monday September 17, 2001 in a motorbike accident while he was going to work. We make a copy of this document from his <a href="http://egp.free.fr/oldsite/port-kaffe/">old website</a>. Any comment and suggestions about Kaffe's porting issues are welcome to <a href="mailto:kaffe at kaffe.org">kaffe at kaffe.org</a>.<p>
<li><a href="http://www.cs.pdx.edu/~sanseri/kaffe/kaffe.html">Porting Kaffe to the IA-64 Architecture</a><p>
===================================================================
Checking out website/doc/port-kaffe/index.html
RCS: /home/cvs/kaffe/website/doc/port-kaffe/index.html,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ website/doc/port-kaffe/index.html Sat May 14 10:19:20 2005
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <title>Porting Kaffe to a new Plateforme</title>
+ </head>
+
+ <body>
+ <h1>Porting Kaffe to a new Plateforme</h1>
+
+ <blockquote>
+ I had port <tt>JIT</tt> engine to Alpha Tru64 and GNU/Linux Alpha in
+ the past and I know how it's difficult to understand correctly
+ <tt>intrp</tt> and <tt>JIT</tt> engines with only sources as
+ documentation. I had write this document latter while I was porting
+ <tt>intrp</tt> engine to Darwin (Mac OS X) operating system. In the
+ same time I was writing <tt>JIT back-end</tt> for PowerPC.
+ </blockquote>
+
+ <blockquote>
+ If you find some bullets in this document, send an email to <a
+ href="mailto:egp at free.fr">egp at free.fr</a>. All comments are welcome.
+ If you want to fix typo or grammar use SGML sources only and send me
+ "<tt>diff -u</tt>" result. Never fill-paragraph NOR reformat them.
+ </blockquote>
+
+ <h4>History</h4>
+ <table>
+ <tbody>
+ <tr>
+ <td>August 30, 2001</td>
+ <td>
+ Publish version 0.2.
+ Read <a href="port-kaffe-0.2.html">HTML</a>.
+ Download source <a href="port-kaffe-0.2.tar.gz">port-kaffe-0.2.tar.gz</a>.
+ </td>
+ </tr>
+
+ <tr>
+ <td>August 19, 2001</td>
+ <td>
+ Publish version 0.1.
+ Read <a href="port-kaffe-0.1.html">HTML</a>.
+ Download source <a href="port-kaffe-0.1.tar.gz">port-kaffe-0.1.tar.gz</a>.
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+
+ <hr>
+ <address>© 2001 <a href="mailto:egp at free.fr">Edouard G. Parmelan</a></address>
+<!-- Created: Thu Aug 30 23:36:04 CEST 2001 -->
+<!-- hhmts start -->
+Last modified: Thu Sep 13 14:29:31 CEST 2001<br>
+NOTE: <a href="http://egp.free.fr/">Edouard G. Parmelan</a> died Monday September 17, 2001 in a motorbike accident while he was going to work. We make a copy of this document from his <a href="http://egp.free.fr/oldsite/port-kaffe/">old website</a>. Any comment and suggestions about Kaffe's porting issues are welcome to <a href="mailto:kaffe at kaffe.org">kaffe at kaffe.org</a>.
+<!-- hhmts end -->
+ </body>
+</html>
===================================================================
Checking out website/doc/port-kaffe/port-kaffe-0.1.html
RCS: /home/cvs/kaffe/website/doc/port-kaffe/port-kaffe-0.1.html,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ website/doc/port-kaffe/port-kaffe-0.1.html Sat May 14 10:19:20 2005
@@ -0,0 +1,3327 @@
+<HTML
+><HEAD
+><TITLE
+>Porting Kaffe to a new platform</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"></HEAD
+><BODY
+CLASS="BOOK"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="BOOK"
+><A
+NAME="AEN1"
+></A
+><DIV
+CLASS="TITLEPAGE"
+><H1
+CLASS="TITLE"
+><A
+NAME="AEN2"
+>Porting Kaffe to a new platform</A
+></H1
+><H3
+CLASS="AUTHOR"
+><A
+NAME="AEN5"
+>Edouard G. Parmelan</A
+></H3
+><P
+CLASS="COPYRIGHT"
+>Copyright © 2001 by Edouard G. Parmelan</P
+><DIV
+CLASS="LEGALNOTICE"
+><A
+NAME="AEN18"
+></A
+><P
+></P
+><P
+> Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1 or
+ any later version published by the Free Software Foundation; with no
+ Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+ Texts. A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+ </P
+><P
+></P
+></DIV
+><HR></DIV
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="#AEN20"
+>Preface</A
+></DT
+><DT
+>1. <A
+HREF="#AEN53"
+>Overview</A
+></DT
+><DT
+>2. <A
+HREF="#PORT-INTRP-ENGINE"
+>Port Kaffe <TT
+CLASS="LITERAL"
+>intrp</TT
+> engine to a new
+ platform</A
+></DT
+><DD
+><DL
+><DT
+>2.1. <A
+HREF="#CONFIG-FILES"
+>Configuration files</A
+></DT
+><DT
+>2.2. <A
+HREF="#ALIGNMENT-OF-SIZE"
+>Alignment of various types</A
+></DT
+><DT
+>2.3. <A
+HREF="#UNIX-JTHREAD"
+>Threads subsystem</A
+></DT
+><DT
+>2.4. <A
+HREF="#AEN200"
+>Locks subsystem</A
+></DT
+><DT
+>2.5. <A
+HREF="#SYSDEPCALLMETHOD"
+>Function <TT
+CLASS="FUNCTION"
+>sysdepCallMethod()</TT
+></A
+></DT
+><DD
+><DL
+><DT
+>2.5.1. <A
+HREF="#CALLMETHODINFO"
+>The <TT
+CLASS="LITERAL"
+>callMethodInfo</TT
+> structure</A
+></DT
+><DT
+>2.5.2. <A
+HREF="#LIBFFI"
+><TT
+CLASS="LITERAL"
+>libffi</TT
+></A
+></DT
+></DL
+></DD
+><DT
+>2.6. <A
+HREF="#LIBTOOL"
+>GNU Libtool</A
+></DT
+></DL
+></DD
+><DT
+>3. <A
+HREF="#PORT-JIT-ENGINE"
+>Port Kaffe <TT
+CLASS="LITERAL"
+>JIT</TT
+> engine to a new platform</A
+></DT
+><DT
+>4. <A
+HREF="#NEW-JIT-ENGINE"
+>Write <TT
+CLASS="LITERAL"
+>JIT back-end</TT
+> for a new processor
+ family</A
+></DT
+><DD
+><DL
+><DT
+>4.1. <A
+HREF="#JIT-FUNCTIONS"
+>Overview of <TT
+CLASS="LITERAL"
+>JIT back-end</TT
+> functions.</A
+></DT
+><DD
+><DL
+><DT
+>4.1.1. <A
+HREF="#REG-SPILL-RELOAD"
+>Register spills and reloads</A
+></DT
+><DT
+>4.1.2. <A
+HREF="#AEN449"
+>Prologues and epilogues</A
+></DT
+><DT
+>4.1.3. <A
+HREF="#AEN473"
+>Conditional monitor management</A
+></DT
+><DT
+>4.1.4. <A
+HREF="#AEN485"
+>Moves</A
+></DT
+><DT
+>4.1.5. <A
+HREF="#AEN550"
+>Arithmetic operators</A
+></DT
+><DT
+>4.1.6. <A
+HREF="#AEN706"
+>Logical operators</A
+></DT
+><DT
+>4.1.7. <A
+HREF="#AEN713"
+>pushing parameters</A
+></DT
+></DL
+></DD
+><DT
+>4.2. <A
+HREF="#AEN720"
+>Registers description.</A
+></DT
+><DT
+>4.3. <A
+HREF="#AEN723"
+>Slots usage.</A
+></DT
+></DL
+></DD
+><DT
+>5. <A
+HREF="#AEN726"
+>Tips</A
+></DT
+><DT
+>A. <A
+HREF="#GFDL"
+>GNU Free Documentation License</A
+></DT
+><DD
+><DL
+><DT
+>0. <A
+HREF="#AEN750"
+>PREAMBLE</A
+></DT
+><DT
+>1. <A
+HREF="#AEN755"
+>APPLICABILITY AND DEFINITIONS</A
+></DT
+><DT
+>2. <A
+HREF="#AEN765"
+>VERBATIM COPYING</A
+></DT
+><DT
+>3. <A
+HREF="#AEN769"
+>COPYING IN QUANTITY</A
+></DT
+><DT
+>4. <A
+HREF="#AEN775"
+>MODIFICATIONS</A
+></DT
+><DT
+>5. <A
+HREF="#AEN811"
+>COMBINING DOCUMENTS</A
+></DT
+><DT
+>6. <A
+HREF="#AEN816"
+>COLLECTIONS OF DOCUMENTS</A
+></DT
+><DT
+>7. <A
+HREF="#AEN820"
+>AGGREGATION WITH INDEPENDENT WORKS</A
+></DT
+><DT
+>8. <A
+HREF="#AEN824"
+>TRANSLATION</A
+></DT
+><DT
+>9. <A
+HREF="#AEN827"
+>TERMINATION</A
+></DT
+><DT
+>10. <A
+HREF="#AEN830"
+>FUTURE REVISIONS OF THIS LICENSE</A
+></DT
+><DT
+><A
+HREF="#AEN835"
+>How to use this License for your documents</A
+></DT
+></DL
+></DD
+></DL
+></DIV
+><DIV
+CLASS="PREFACE"
+><HR><H1
+><A
+NAME="AEN20"
+>Preface</A
+></H1
+><P
+> I had port <TT
+CLASS="LITERAL"
+>JIT</TT
+> engine to Alpha Tru64 and GNU/Linux
+ Alpha in the past and I know how it's difficult to understand correctly
+ <TT
+CLASS="LITERAL"
+>intrp</TT
+> and <TT
+CLASS="LITERAL"
+>JIT</TT
+> engines with only
+ sources as documentation. I had write this document latter while I was
+ porting <TT
+CLASS="LITERAL"
+>intrp</TT
+> engine to Darwin (Mac OS X) operating
+ system. In the same time I was writing <TT
+CLASS="LITERAL"
+>JIT back-end</TT
+>
+ for PowerPC.
+ </P
+><P
+> This document is written in SGML DocBook with <A
+HREF="http://www.gnu.org/software/emacs"
+TARGET="_top"
+>GNU Emacs</A
+> and
+ <TT
+CLASS="LITERAL"
+>PSGML</TT
+> major mode. Source of this document may be
+ found in <A
+HREF="http://www.kaffe.org/CVS.html"
+TARGET="_top"
+>Kaffe CVS
+ Tree</A
+> or in <A
+HREF="http://egp.free.fr/oldsite/kaffe"
+TARGET="_top"
+>my Kaffe
+ repository</A
+>.
+ </P
+><P
+> If you find some bullets in this document, send an email to
+ <TT
+CLASS="EMAIL"
+><<A
+HREF="mailto:egp at free.fr"
+>egp at free.fr</A
+>></TT
+>. All comments are welcome. If you want to
+ fix typo or grammar use SGML sources only and send me "diff -u" result.
+ Never fill-paragraph NOR reformat them.
+ </P
+>
+.
+ </P
+><P
+> Others persons have already written documents on this subject. I some
+ time peek phrases, sections or inspiration from them.
+
+ <P
+></P
+><UL
+><LI
+><P
+> <A
+HREF="http://www.kaffe.org/"
+TARGET="_top"
+>Kaffe sources</A
+>.
+ </P
+></LI
+><LI
+><P
+> Kiyo Inaba, <A
+HREF="http://www2.biglobe.ne.jp/~inaba/trampolines.html"
+TARGET="_top"
+>"What is
+ trampoline code in Kaffe?"</A
+>, Aug 1998.
+ </P
+></LI
+><LI
+><P
+> Kiyo Inaba, <A
+HREF="http://www2.biglobe.ne.jp/~inaba/sysdepCallMethod.html"
+TARGET="_top"
+>"How
+ sysdepCallMethod works?"</A
+>, Jul 1998.
+ </P
+></LI
+><LI
+><P
+> Samuel K. Sanseri <TT
+CLASS="EMAIL"
+><<A
+HREF="mailto:sanseri at cs.pdx.edu"
+>sanseri at cs.pdx.edu</A
+>></TT
+>, <A
+HREF="http://www.cs.pdx.edu/~sanseri/kaffe/kaffe.html"
+TARGET="_top"
+>"Porting
+ Kaffe to the IA-64 Architecture"</A
+>, Feb 2000.
+ </P
+></LI
+></UL
+>
+ </P
+></DIV
+><DIV
+CLASS="CHAPTER"
+><HR><H1
+><A
+NAME="AEN53"
+>Chapter 1. Overview</A
+></H1
+><P
+> The first step to port Kaffe to a new platform or new processor family
+ is to port <TT
+CLASS="LITERAL"
+>intrp</TT
+> engine. Then As soon as
+ <TT
+CLASS="LITERAL"
+>intrp</TT
+> engine works, you can port
+ <TT
+CLASS="LITERAL"
+>JIT</TT
+> engine (see <A
+HREF="#PORT-JIT-ENGINE"
+>Chapter 3</A
+>). The biggest task will be to write
+ <TT
+CLASS="LITERAL"
+>JIT back-end</TT
+> for your processor family (see <A
+HREF="#NEW-JIT-ENGINE"
+>Chapter 4</A
+>).
+ </P
+><P
+> I will try to covers all these tasks in this document.
+ </P
+></DIV
+><DIV
+CLASS="CHAPTER"
+><HR><H1
+><A
+NAME="PORT-INTRP-ENGINE"
+>Chapter 2. Port Kaffe <TT
+CLASS="LITERAL"
+>intrp</TT
+> engine to a new
+ platform</A
+></H1
+><P
+></P
+><UL
+><LI
+><P
+> Quick presentation of all configuration files for a new platform.
+ </P
+></LI
+><LI
+><P
+> Configuring <TT
+CLASS="LITERAL"
+>unix-jthreads</TT
+> subsystem.
+ </P
+></LI
+><LI
+><P
+>Locks subsystem.</P
+></LI
+><LI
+><P
+> Writing <TT
+CLASS="FUNCTION"
+>sysdepCallMethod()</TT
+> function.
+ </P
+></LI
+><LI
+><P
+> Build <TT
+CLASS="LITERAL"
+>intrp</TT
+> engine.
+ </P
+></LI
+></UL
+><DIV
+CLASS="SECTION"
+><HR><H1
+CLASS="SECTION"
+><A
+NAME="CONFIG-FILES"
+>2.1. Configuration files</A
+></H1
+><P
+> <P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="FILENAME"
+>config/config.alias</TT
+></DT
+><DD
+><P
+> This shell script maps <TT
+CLASS="FILENAME"
+>configure</TT
+>'s
+ variables <TT
+CLASS="VARNAME"
+>$host_cpu</TT
+> and
+ <TT
+CLASS="VARNAME"
+>$host_os</TT
+> to Kaffe cananical forms
+ <TT
+CLASS="VARNAME"
+>$Khost_os</TT
+> and <TT
+CLASS="VARNAME"
+>$Khost_os</TT
+>.
+ These variables define access paths to cpu family and platform
+ configuration files.
+ </P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
+>config/$Khost_cpu/Make.frag</TT
+></DT
+><DD
+><P
+> Optional <TT
+CLASS="FILENAME"
+>Makefile</TT
+> fragments required for
+ this cpu family.
+ </P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
+>config/$Khost_cpu/common.h</TT
+></DT
+><DD
+><P
+> Common definitions for all platforms of this cpu family.
+ </P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
+>config/$Khost_cpu/thread.h</TT
+></DT
+><DD
+><P
+> Common thread definitions for all platforms of this cpu
+ family.
+ </P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
+>config/$Khost_cpu/$Khost_os/config.frag</TT
+></DT
+><DD
+><P
+> <TT
+CLASS="FILENAME"
+>configure</TT
+>'s fragment for this platform.
+ </P
+><P
+> It may holds specials <TT
+CLASS="VARNAME"
+>$CFLAGS</TT
+> add-ons and
+ <I
+CLASS="EMPHASIS"
+>cross-compile</I
+> definitions.
+ </P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
+>config/$Khost_cpu/$Khost_os/md.h</TT
+>, <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/$Khost_os/md.c</TT
+></DT
+><DD
+><P
+> Platform dependent header and functions.
+ </P
+><P
+> File <TT
+CLASS="FILENAME"
+>md.h</TT
+> typically includes
+ <TT
+CLASS="FILENAME"
+>$Khost_cpu/common.h</TT
+> and
+ <TT
+CLASS="FILENAME"
+>$Khost_cpu/thread.h</TT
+> and defines
+ <TT
+CLASS="VARNAME"
+>SP_OFFSET</TT
+> macro.
+ </P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
+>config/$Khost_cpu/jit.h</TT
+>, <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/jit-$Khost_cpu.def</TT
+>, <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/jit-icode.h</TT
+>, <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/jit3-$Khost_cpu.def</TT
+>, <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/jit3-icode.h</TT
+></DT
+><DD
+><P
+> JIT/JIT3 definitions for this cpu family.
+ </P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
+>config/$Khost_cpu/$Khost_os/jit-md.h</TT
+>, <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/$Khost_os/jit3-md.h</TT
+></DT
+><DD
+><P
+> Platform JIT/JIT3 dependent header.
+ </P
+><P
+> It includes <TT
+CLASS="FILENAME"
+>$Khost_cpu/jit.h</TT
+> and defines
+ <TT
+CLASS="VARNAME"
+>EXCEPTIONPROTO</TT
+> and
+ <TT
+CLASS="VARNAME"
+>EXCEPTIONFRAME</TT
+> macros.
+ </P
+></DD
+></DL
+></DIV
+>
+ </P
+></DIV
+><DIV
+CLASS="SECTION"
+><HR><H1
+CLASS="SECTION"
+><A
+NAME="ALIGNMENT-OF-SIZE"
+>2.2. Alignment of various types</A
+></H1
+><P
+> Fields inside classe objects must follow the alignment constraints of
+ the C calling conventions. If alignment of type
+ <TT
+CLASS="REPLACEABLE"
+><I
+>TYPE</I
+></TT
+> is not
+ <TT
+CLASS="FUNCTION"
+>sizeof(<TT
+CLASS="REPLACEABLE"
+><I
+>TYPE</I
+></TT
+>)</TT
+> you must
+ define macro
+ <TT
+CLASS="FUNCTION"
+>ALIGNMENT_OF_SIZE(<TT
+CLASS="REPLACEABLE"
+><I
+>SIZE</I
+></TT
+>)</TT
+>
+ in file <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/common.h</TT
+>.
+ </P
+><P
+> The small C program
+ <TT
+CLASS="FILENAME"
+>developers/alignment_of_size.c</TT
+> may helps you to
+ discover correct alignment. Simply compiles it and runs it.
+ </P
+></DIV
+><DIV
+CLASS="SECTION"
+><HR><H1
+CLASS="SECTION"
+><A
+NAME="UNIX-JTHREAD"
+>2.3. Threads subsystem</A
+></H1
+><P
+> Sources of threads subsystems are located into directory
+ <TT
+CLASS="FILENAME"
+>kaffe/kaffevm/systems/</TT
+>.
+ </P
+><P
+> The common threads subsystem is <TT
+CLASS="LITERAL"
+>unix-jthread</TT
+>. It
+ uses <TT
+CLASS="FUNCTION"
+>setjmp()</TT
+> and <TT
+CLASS="FUNCTION"
+>longjmp()</TT
+>
+ functions. In order to use it you must provide stack pointer offset
+ into <TT
+CLASS="VARNAME"
+>jmp_env</TT
+>.
+ </P
+><P
+> The small C program <TT
+CLASS="FILENAME"
+>developers/sp_offset.c</TT
+> may
+ helps you to discover <TT
+CLASS="LITERAL"
+>SP_OFFSET</TT
+>. Simply compiles it
+ and runs it. It may leaves <TT
+CLASS="FILENAME"
+>core</TT
+> file in you
+ current directory.
+ </P
+><P
+> Some platforms need to setup Frame-Pointer register when creating a
+ new thread stack. In this case you must provide his offset
+ <TT
+CLASS="LITERAL"
+>FP_OFFSET</TT
+> into <TT
+CLASS="VARNAME"
+>jmp_env</TT
+>.
+ </P
+><P
+> Macros <TT
+CLASS="LITERAL"
+>SP_OFFSET</TT
+> and <TT
+CLASS="LITERAL"
+>FP_OFFSET</TT
+>
+ should be defined in file
+ <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/$Kost_os/md.h</TT
+>.
+ </P
+><P
+> Define the macro <TT
+CLASS="LITERAL"
+>THREADSTACKSIZE</TT
+> in file
+ <TT
+CLASS="FILENAME"
+>config/$Khost_cpu/thread.h</TT
+> to the size in bytes
+ of each thread's stack. This size may depends on
+ <TT
+CLASS="LITERAL"
+>INTERPRETER</TT
+> defined as <TT
+CLASS="LITERAL"
+>intrp</TT
+>
+ engine will need greater stack size than <TT
+CLASS="LITERAL"
+>JIT</TT
+>
+ engine. Commun values are 64K for <TT
+CLASS="LITERAL"
+>intrp</TT
+> engine and
+ 32K for <TT
+CLASS="LITERAL"
+>JIT</TT
+> engine.
+ </P
+><P
+> You may want to use another threads subsystem specific to your
+ platform. It is possible but it's not cover by this document. Read
+ files <TT
+CLASS="FILENAME"
+>FAQ/FAQ.jsignal</TT
+> and
+ <TT
+CLASS="FILENAME"
+>FAQ/FAQ.locks</TT
+>.
+ </P
+><P
+> To select another threads subsystem, configure with option
+ <TT
+CLASS="LITERAL"
+>--with-threads=<TT
+CLASS="REPLACEABLE"
+><I
+>thread-subsystem</I
+></TT
+></TT
+>.
+ </P
+></DIV
+><DIV
+CLASS="SECTION"
+><HR><H1
+CLASS="SECTION"
+><A
+NAME="AEN200"
+>2.4. Locks subsystem</A
+></H1
+><P
+> Kaffe Fast Locking scheme (read <TT
+CLASS="FILENAME"
+>FAQ/FAQ.locks</TT
+>)
+ need a macro to atomic compare and exchange a lock address. This
+ macro <TT
+CLASS="FUNCTION"
+>COMPARE_AND_EXCHANGE()</TT
+> must be
+ implemented in assembler.
+ </P
+><P
+> Macro <TT
+CLASS="LITERAL"
+>COMPARE_AND_EXCHANGE()</TT
+> should be define in file
+ <TT
+CLASS="FILENAME"
*** Patch too long, truncated ***
More information about the kaffe-siteadmin
mailing list