From: Йордан Г. <col...@gm...> - 2012-07-02 07:45:28
|
The language addition can indeed be achieved with macros, but you should really test the one in process_ea(). I can't test it until I find out why all the 32-bit linkers I try are unable to find any of the symbols. I haven't tried alink yet. I have a feeling the else block after it won't work right. 2012/7/2 H. Peter Anvin <hp...@zy...>: > On 07/01/2012 08:32 AM, Cyrill Gorcunov wrote: >> >> On Sun, Jul 01, 2012 at 10:13:49AM +0300, Йордан Гигов wrote: >>> >>> The current version of Nasm never generates mod 0 rm 5 bytes to >>> address memory or code, thus it can only be linked with >>> /LARGEADDRESSAWARE:NO by the Microsoft linkers. Additionally you can't >>> specify a base larger than 0x7FFFFFFF. My patch fixes that. >>> >>> Also I make the proposition that in addition to "db", "dw", "dd", >>> "dq", etc. keywords we add "dp" (as in define pointer). It is to be >>> the same size as the program's BITS mode. In 64-bit mode it would >>> behave as dq, in 32-bit as dd, and in 16-bit as dw. >> >> >> I think this should be done rather by a macro definition than >> squashing into C source (and, btw don't address two problems in >> one path, it could be 2 patches -- one for sib and one for dp). >> > > I think we could go either way on that... it's not a huge difference. > > However, to do an if tree is kind of silly... > > -hpa > > -- > H. Peter Anvin, Intel Open Source Technology Center > I work for Intel. I don't speak on their behalf. > > > |