Hi Paul >> I guess the thing that's throwing me here, is the use of >> [EAX].TSparseList Is it casting the register as a pointer to >> a TSparseList instance, in order to get the offset to the FList field? >> I'm wondering what the equivalent is in AT&T. >> > Well, there are no casts in assembler per se - it's just a useful > shorthand for calculating a member offset that will stay correct even if > you rearrange the TSparseList class declaration which is a very nice > BASM feature. > > So, assuming the offset to the FList member from the start of a > TSparseList instance is 12 bytes (for arguments sakes), in AT&T syntax > that would be: > > movl 12(%eax), %eax So I could do something like this?
i := integer(@TSparseList(nil).FList); movl i(%eax), %eax > Purely out of curiousity, but why do you want the AT&T syntax > equivalent? Is this for part of a Lazarus port? > You got it in one. > Also, I gather Freepascal will translate intel BASM syntax to AT&T > syntax before passing it down the GNU toolchain. Maybe you could capture > the intermediate result? > > The x86_64 version of FPC doesn't seem to like the BASM syntax, otherwise I wouldn't touch it. Or at least I can't figure out how to force FPC to compile it. The directive {$asmmode intel} doesn't seem to work. > Cheers, > Paul. > > _______________________________________________ > NZ Borland Developers Group - Delphi mailing list > Post: delphi@delphi.org.nz > Admin: http://delphi.org.nz/mailman/listinfo/delphi > Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: > unsubscribe > _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe