On 08/04/2010 10:29 PM, Vinzent Höfler wrote:
|The source operand is a memory address (offset part)
^^^
Says that only the offset is used.
OK, it says the offset part is _specified_. But the text describes the
LEA instruction (8D) itself.
OK I was wrong by two bits.
See http://flint.cs.yale.edu/cs422/doc/24547212.pdf page 3-7
The logical address is 24 bits: 16 bits Segment Selector and 32 bits
Offset. Obviously in an instruction, usually the Segment Selector is
taken from one of the six Segment registers while the Offset is
On 08/04/2010 09:23 PM, Hans-Peter Diettrich wrote:
autobloat,
I never heard of same ?!?!?
-Michael
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
On 08/04/2010 09:19 PM, Hans-Peter Diettrich wrote:
Michael Schnell schrieb:
Look at the document I mentioned: a linear address is 48 bits,
while a pointer is only 32 bits (the Offset) .
Read section 3.3 ff. and 3.8.
Linear addresses are always 32 bit, and only a few server-type CPUs
had
On 08/04/2010 09:40 PM, Vinzent Höfler wrote:
JFTR, plain vanilla C (i.e. ISO C99) does not even have a notion of a thread
variable, because it doesn't have threads. So I don't know what C you're referring
to here.
GNU C provides the __thread keyword to specify threadvars. M$ C
provides
On 05 Aug 2010, at 09:30, Michael Schnell wrote:
On 08/04/2010 09:23 PM, Hans-Peter Diettrich wrote:
autobloat,
I never heard of same ?!?!?
He means autoconf and automake.
It might be best if everyone would use the normal technical terms
instead of derogatory inventions, since it
On 08/05/2010 10:59 AM, Jonas Maebe wrote:
He means autoconf and automake.
They do have their own (very short) chapter in the GNU book.
-Michael
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
Marc Weustink schrieb:
While I can use Lazarus to debug the compilation of a single source
file, no such feature exists for Makefiles. I even don't know how to
translate an error address to a source code position. In Delphi I had a
jump to address... menu item...
Use make all as Execute
Michael Schnell schrieb:
On 08/04/2010 09:23 PM, Hans-Peter Diettrich wrote:
autobloat,
I never heard of same ?!?!?
automake, autoconf, configure...
These are tools that try and guess how a project should be adopted to
various targets. But it's up to the user to create the tests, with
Michael Schnell schrieb:
IMHO, if the compiler should issue an error message if yo9u give a
segment register with LEA, as the result obviously is erroneous. Maybe
other compilers in fact do this. I only tested Turbo Delphi.
I had thought that this has been fixed on newer architectures, that
Michael Schnell schrieb:
OK I was wrong by two bits.
See http://flint.cs.yale.edu/cs422/doc/24547212.pdf page 3-7
The logical address is 24 bits: 16 bits Segment Selector and 32 bits
Offset.
Please be a bit more precise with your bitcounts.
The Selector is used to take one of up to 2^13
Thanks for the explanation !
-Michael
___
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
On 08/05/2010 11:19 AM, Hans-Peter Diettrich wrote:
Michael Schnell schrieb:
See http://flint.cs.yale.edu/cs422/doc/24547212.pdf page 3-7
The logical address is 24 bits: 16 bits Segment Selector and 32
bits Offset.
Please be a bit more precise with your bitcounts.
Sorry for the typo of
On 08/05/2010 11:19 AM, Hans-Peter Diettrich wrote:
Please accept that no more than 3 different segments are in use nowadays.
This is not true.
1) FS: as discussed in this thread, Windows uses FS to address the
thread management block
2) ES: in my tests I modified ES in ASM code in a
Hi all,
It seems like that when you call a method of an interface, a 'hidden'
wrapper is generated by the compiler to adjust the 'self' parameter so
that it does not refers to the interface-pointer, but the actual
class-pointer.
The problem is only that the extra 'call' which is made adds one
Joost van der Sluis пишет:
...
I don't know what's the best way to fix this.
I see three solutions:
1: replace the 'call' in the wrapper with a 'jmp'. I've tried this and
it works, but when the function returns, the 'self'-class-pointer is not
converted to the interface-pointer. But I don't
On 05 Aug 2010, at 15:18, Joost van der Sluis wrote:
1: replace the 'call' in the wrapper with a 'jmp'. I've tried this and
it works, but when the function returns, the 'self'-class-pointer is
not
converted to the interface-pointer. But I don't see why this is done
in
the first place?!?
Zitat von Hans-Peter Diettrich drdiettri...@aol.com:
Marc Weustink schrieb:
While I can use Lazarus to debug the compilation of a single source
file, no such feature exists for Makefiles. I even don't know how to
translate an error address to a source code position. In Delphi I had a
jump to
On Thu, 2010-08-05 at 17:36 +0400, Sergei Gorelkin wrote:
Joost van der Sluis пишет:
...
I don't know what's the best way to fix this.
2: See if we can let the caller do the
interface-pointer-to-class-pointer conversion. That way the wrapper is
not necessary anymore. Leads to somewhat
On Thu, 2010-08-05 at 16:01 +0200, Jonas Maebe wrote:
On 05 Aug 2010, at 15:18, Joost van der Sluis wrote:
1: replace the 'call' in the wrapper with a 'jmp'. I've tried this and
it works, but when the function returns, the 'self'-class-pointer is
not
converted to the
Michael Schnell mschn...@lumino.de:
No need to. The segment value is not used by LEA. It calculates the
effective address which basically means the offset.
Yep basically. :) But with other instructions the same notation and
description as used for effective address with LEA is used to
Michael Schnell mschn...@lumino.de:
2) ES: in my tests I modified ES in ASM code in a Delphi program and
caused it to crash by this, So the Delphi compiler seems to use it (for
whatever purpose)
No surprise, in any sane environment DS should be equal to ES. Most notorious
instruction
Hello everybody,
probably this is not really new stuff, but... May I propose multiple
assignments, e.g.
a,b:=0;
or
a,b += c+d;
The right hand expression should be evaluated once and assigned (independently
and in no particular order) to all the entries to the left of := .
Jasper
Am 05.08.2010 22:19, schrieb _-jan...@web.de:
Hello everybody,
I would like to propose an enhanced replacement for the special assignment
operators += -= *= and /= :
More pascal-like would be constructs of the form operator := such as
a + := 1;
a div := 3;
a or := b;
a xor := 3;
Joost van der Sluis schrieb:
It seems like that when you call a method of an interface, a 'hidden'
wrapper is generated by the compiler to adjust the 'self' parameter so
that it does not refers to the interface-pointer, but the actual
class-pointer.
This is common practice, also in C++.
The
Michael Schnell schrieb:
FS/GS for non-zerobased segments, all others are zero-based.
I have no idea what you mean by zerobased.
Then you missed fundamental 32/64 bit hardware and software principles :-(
Please read and understand the available documentation, my preceding
posts, and ask
On 4 August 2010 19:50, Hans-Peter Diettrich drdiettri...@aol.com wrote:
Henry Vermaak schrieb:
I'm not very familiar with the make syntax :-(
Heh, prepare to lose your mind.
It's like with the universe - once somebody will figure out, how it works,
it will turn immediately into something
Hello Florian!
I would like to propose an enhanced replacement for the special assignment
operators += -= *= and /= :
More pascal-like would be constructs of the form operator := such as
a + := 1;
a div := 3;
a or := b;
a xor := 3;
a := 1;
Together with my prior proposal of multiple
I guess that the problem which you want to solve is having to type
too much. If that is the case, you should rather work on improving
code completion in Lazarus or whichever IDE you use. Then you could
type something like += and Ctrl+Alt+C and it would expand to the
natural Pascal version. Or
On Thu, 5 Aug 2010, Felipe Monteiro de Carvalho wrote:
I guess that the problem which you want to solve is having to type
too much. If that is the case, you should rather work on improving
code completion in Lazarus or whichever IDE you use. Then you could
type something like += and
Hello!
I recently put other proposals on
http://wiki.freepascal.org/Talk:Modernised_Pascal.
However I am not sure whether this is the right place to put this. The forum
appears to be a better place.
Unfortunately I am inexperienced in FPC's wiki system. What should I do about
my postings?
On 05 Aug 2010, at 21:36, Hans-Peter Diettrich wrote:
Michael Schnell schrieb:
FS/GS for non-zerobased segments, all others are zero-based.
I have no idea what you mean by zerobased.
Then you missed fundamental 32/64 bit hardware and software principles :-(
Please read and understand
IMO the file search performance can be improved, in detail for files to
compile.
Currently FileExists is called for every possible directory, name case
and possible extensions. This means that the OS may have to search the
same directory multiple times, for all these cases - O(n). This can be
Henry Vermaak schrieb:
Build systems seem to be a constant itch. See a list here:
http://en.wikipedia.org/wiki/List_of_build_automation_software
Shouldn't we add FPC to that list?
IMO the list completely ignores the existence of platform independent
development systems, like for Basic,
Felipe Monteiro de Carvalho schrieb:
What is the OO rewrite?
It's an SVN branch, aimed at making the compiler more object-oriented.
It should simplify the maintenance of the compiler code, the test of
different algorithms and procedures for specific parts, and finally the
use of threads and
On Fri, Aug 6, 2010 at 07:23, Florian Klämpfl flor...@freepascal.org wrote:
Am 05.08.2010 22:19, schrieb _-jan...@web.de:
Hello everybody,
I would like to propose an enhanced replacement for the special assignment
operators += -= *= and /= :
More pascal-like would be constructs of the form
On Fri, Aug 6, 2010 at 08:29, Michael Van Canneyt
mich...@freepascal.org wrote:
Pascal as it is, is a very readable language as opposed to C. Proposals such
as this diminish the readability.
FWIW, while migrating to FPC/newer Delphi,
I specifically replace all usage of Inc/Dec and
In our previous episode, Alexander Klenin said:
as this diminish the readability.
FWIW, while migrating to FPC/newer Delphi,
I specifically replace all usage of Inc/Dec and Include/Exclude in my
Pascal programs
by += / -= *to increase readability*.
And I think it really helps ;-)
I think
On Fri, Aug 6, 2010 at 14:08, Marco van de Voort mar...@stack.nl wrote:
In our previous episode, Alexander Klenin said:
as this diminish the readability.
FWIW, while migrating to FPC/newer Delphi,
I specifically replace all usage of Inc/Dec and Include/Exclude in my
Pascal programs
by += /
Alexander Klenin kle...@gmail.com:
C-like operators reduce the number of required punctuation --
I always think that the extra punctuation is bad for readability.
Rght. Shrt sntncs r mch sr t rd.
SCNR,
Vnznt.
--
Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief!
Jetzt
Vinzent Höfler wrote:
Alexander Klenin kle...@gmail.com:
C-like operators reduce the number of required punctuation --
I always think that the extra punctuation is bad for readability.
Rght. Shrt sntncs r mch sr t rd.
This is more about
SomeReallyLongVariableNameX += 10;
being nicer
On Fri, Aug 6, 2010 at 16:08, Vinzent Höfler
jellyfish.softw...@gmx.net wrote:
Alexander Klenin kle...@gmail.com:
C-like operators reduce the number of required punctuation --
I always think that the extra punctuation is bad for readability.
Rght. Shrt sntncs r mch sr t rd.
(No) ((but) the
42 matches
Mail list logo