[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gforth] IA64 asm?

From: Jeffrey Chimene
Subject: Re: [gforth] IA64 asm?
Date: Thu, 25 Apr 2013 18:17:04 -0700
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:17.0) Gecko/20130328 Thunderbird/17.0.5

On 04/25/2013 05:26 PM, Bernd Paysan wrote:
> Am Donnerstag, 25. April 2013, 12:17:15 schrieb Jeffrey Chimene:
>> Hi Folks,
>> I didn't see anything about this in the archives.
>> Can anyone tell me why there's no IA64 assembler?
> Probably because nobody had the time to write one?

HI Bernd,

Thanks for the reply!

I've been following GForth for a few years. I finally have a use case.

    I'm interested in porting Node.js to OpenVMS. While I'd prefer starting w/ Alpha, it's probably better to start w/ IA64.

    To port Node.js, one must also port the V8 _javascript_ engine. V8 generates machine code at run time along two paths: a sort of "fast first" path, and a dynamically optimized path. Both paths converge on a set of common routines all of which converge on a common code generator.

    To bootstrap the porting process to Mips from an existing architecture (e.g. AMD64), somebody wrote a Mips simulator (C++). This simulator exports the same function signature as the code generator above.

The simulator is a fine piece of work, but it's written for a RISC machine. I cannot see converting the simulator out of the box to IA64. I really think I'm going to need a workbench to figure out the intricacies of IA64. Fortunately, I don't need the /entire/ IA64 instruction set. Some instructions are forbidden to user-space code, and other instructions don't make sense in the context of V8 (e.g. MMX & XMM instructions). Because this is OpenVMS, the alternate IA32e mode does not apply. Once I have that subset sort-of, kind-of working, I can direct attention to the simulator.

And, what better workbench than Forth?

Are you interested in the results? Or, is the subsetting a no-go for you?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]