Yea, the relevant piece of code (which I surmise you've already found) is
in pal.isa:
def format HwStore(ea_code, memacc_code, class_ext, *flags) {{
(header_output, decoder_output, decode_block, exec_output) = \
LoadStoreBase(name, Name + class_ext, ea_code, memacc_code,
mem_flags = [], inst_flags = flags,
base_class = 'HwLoadStore', exec_template_base =
'Store')
}};
So the third arg gets bound to class_ext, which is just tacked on to the
Name variable (auto-populated with Hw_st in this case) to form the class
name. If you look in build/ALPHA_*/arch/alpha/decoder.hh you'll see that
there's a Hw_stL class and a Hw_stQ class (generated by the following
decoder.isa line) that differentiate between the longword and quadword
versions of hw_st.
Steve
On Thu, Jan 5, 2012 at 9:33 AM, Paul Rosenfeld <[email protected]> wrote:
> Hello,
>
> I'm slowly starting to wrap my head around the way the ISA language works,
> but I can't seem to figure out what certain parameters are to a format. For
> example in the alpha ISA's decode blocks I see this:
>
> 888 0x1f: decode PALMODE {
> 889 0: OpcdecFault::hw_st_cond();
> 890 format HwStore {
> 891 1: decode HW_LDST_COND {
> 892 0: decode HW_LDST_QUAD {
> 893 0: hw_st({{ EA = (Rb + disp) & ~3; }},
> 894 {{ Mem.ul = Ra<31:0>; }}, L, IsSerializing,
> IsSerializeBefore);
>
> I understand the basic structure here: first two arguments are code
> literals, the last two are flags from static_inst.hh, but I can't figure
> out what "L" is. When I grep for L, I can't find anything (i.e. it's not a
> bitfield, not a flag). Looking at the corresponding python code it seems
> like maybe it's just a string literal? Is this right?
>
> Thanks in advance,
> Paul
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users