AMD64Assembler.java

Gilles Duboscq gilwooden at gmail.com
Thu Feb 14 14:37:48 PST 2013


Hi,

You are comparing it to x86_64.ad right?
Maybe our assembler is more comparable to assembler_x86.cpp which is about
5500 lines.
The ad files describe the architecture and a way to match C2 Nodes to C2
MachNodes while the assemblers in assembler_x86.cpp or AMD64Assembler.java
are more simple, they are just a sequence of function that can emit the
code corresponding to the x86 mnemonics.
I'm also not sure if those implement all of x86's instructions.
For example in the Graal ones, we probably only have subset we need, which
is the one needed to emit x86_64 code, sse2 for floating point arithmetic
and a handful of x87 function for Math intrinsics.

Also, no we do not use Hotspot's C++ assemblers (assembler_x86.cpp, mainly
used for C1, stubs, templates... I suppose) or the architecture
descriptions (x86_64.ad used by C2)

- Gilles

On Thu, Feb 14, 2013 at 11:22 PM, Vasanth Venkatachalam <
Vasanth.Venkatachalam at amd.com> wrote:

> Hi,
>
> I had a cursory glance at AMD64Assembler.java and noticed that its only
> around 3000 lines long, whereas Hotspot's assembler_x86.cpp is around 10000
> lines.
>
> Are all the x86 instructions encoded in AMD64Assembler.java? If not, how
> does Graal process the remaining instructions? Does it piggyback on
> Hotspot's assembler?
>
> Vasanth
>


More information about the graal-dev mailing list