<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=WINDOWS-1250">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>RE: [fpc-pascal]Another Intel ASM problem</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Great! Simply great... can't wait for that :-))</FONT>
</P>

<P><FONT SIZE=2>regards, Pavel Kanzelsberger</FONT>
</P>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: Peter Vreman [<A HREF="mailto:peter@freepascal.org">mailto:peter@freepascal.org</A>]</FONT>
<BR><FONT SIZE=2>Sent: Wednesday, June 27, 2001 3:12 PM</FONT>
<BR><FONT SIZE=2>To: fpc-pascal@deadlock.et.tudelft.nl</FONT>
<BR><FONT SIZE=2>Subject: RE: [fpc-pascal]Another Intel ASM problem</FONT>
</P>
<BR>

<P><FONT SIZE=2>> Yes I know that directives are used to change configuration, for example by</FONT>
<BR><FONT SIZE=2>> setting {$BALIGN 8} compiler should add ".balign 8" in before every</FONT>
<BR><FONT SIZE=2>> procedure code...</FONT>
</P>

<P><FONT SIZE=2>But what about alignment of jumps and loops? A more generic</FONT>
</P>

<P><FONT SIZE=2>{$ALIGNCODE PROCEDURE=8}</FONT>
<BR><FONT SIZE=2>{$ALIGNCODE LOOP=4}</FONT>
<BR><FONT SIZE=2>{$ALIGNCODE JUMP=4}</FONT>
</P>

<P><FONT SIZE=2>is more generic and extendable</FONT>
</P>
<BR>

<P><FONT SIZE=2>> I never used this in TASM or in Delphi, I just found it in FPC sources</FONT>
<BR><FONT SIZE=2>> inside AT&T assembler and found that 8 byte aligned code really speeds-up</FONT>
<BR><FONT SIZE=2>> the execution so I want to use it in my libraries...</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Another idea is to add new optimization switch which adds this to every</FONT>
<BR><FONT SIZE=2>> procedure and main code...</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> But hey, it's you who will decide to put it and which way :-))) This is just</FONT>
<BR><FONT SIZE=2>> my idea about this, because it's much easier to use it as FPC feature</FONT>
<BR><FONT SIZE=2>> instead of rewriting 80000 lines of code to AT&T assembler :)</FONT>
</P>

<P><FONT SIZE=2>I think that the simple word ALIGN should be enough:</FONT>
</P>

<P><FONT SIZE=2>    mov eax,1</FONT>
<BR><FONT SIZE=2>ALIGN 4</FONT>
<BR><FONT SIZE=2>    @1:</FONT>
<BR><FONT SIZE=2>    inc eax</FONT>
<BR><FONT SIZE=2>    loop @1</FONT>
</P>

<P><FONT SIZE=2>This is readable and i think it won't clash with other things.</FONT>
</P>

<P><FONT SIZE=2>Anybody other opinions?</FONT>
</P>

<P><FONT SIZE=2>Btw. this will be added only in the 1.1 development version</FONT>
</P>
<BR>
<BR>
<BR>

<P><FONT SIZE=2>_______________________________________________</FONT>
<BR><FONT SIZE=2>fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org</FONT>
<BR><FONT SIZE=2><A HREF="http://lists.freepascal.org/mailman/listinfo/fpc-pascal" TARGET="_blank">http://lists.freepascal.org/mailman/listinfo/fpc-pascal</A></FONT>
</P>

</BODY>
</HTML>