Thanks! I understand now. - Ching Tsun
On Wednesday, June 20, 2012, avadh patel wrote: > > > On Mon, Jun 18, 2012 at 11:54 PM, Ching-Tsun Chou < > [email protected] <javascript:_e({}, 'cvml', > '[email protected]');>> wrote: > >> In the file ptlsim/x86/decode-sse.cpp, in the function >> TraceDecoder::decode_sse(), in the first part of the "switch (op)" >> statement (i.e., the part for SSE arithmetic), shouldn't the "size" >> argument for the TransOp's lowop() and highop() be "datatype" rather than >> "sizetype" (leaving aside the special case for OPCLASS_LOGIC) for the >> floating-point operations? The "sizetype" ranges over {0,1,2,3}, for >> operation sizes {1,2,4,8} bytes. But the floating-point operations are >> either single-precision (32 bits) or double-precision (64 bits). >> >> You are right about floating point operation type to be either 32 bit or > 64 bit. To simplify design in decoder, 'size' field of uop is used to > represent 'datatype' in floating point and SSE operations. So for size == > 0: its scalar single-precision operation, size == 1: its packed > single-precision operation and, size >= 2: its double-precision operation. > Take a look at 'uopimpl.cpp' file which implements uops and uses 'size' > field as 'datatype'. > > The 'datatype' field is used in uop just to identify different type of > floating point operations, which can be used in pipeline for variable > latency for same uop type. But current core pipeline implementation does > not support variable latency for same uop. > > - Avadh > > Or did I miss something? >> >> Thanks in advance! >> - Ching Tsun >> >> >> _______________________________________________ >> http://www.marss86.org >> Marss86-Devel mailing list >> [email protected] <javascript:_e({}, 'cvml', >> '[email protected]');> >> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel >> >> >
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
