This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/55300] New: [SH] Add support for store queue address space


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55300

             Bug #: 55300
           Summary: [SH] Add support for store queue address space
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: olegendo@gcc.gnu.org
            Target: sh4*-*-*


On SH4* targets there is a store queue (SQ) resource.  While the management of
the SQ resource (i.e. how user code obtains a pointer to the SQ) is beyond the
scope of the compiler, there is one thing that it could help with.  The usage
of the SQ has some restrictions on the memory accesses that are valid in the SQ
area:
* Reads from SQ area are not valid (return garbage or zero, don't remember)
* Writes must be 32 bit or 64 bit wide

User code that utilizes the SQ to write data could, for example, do so by
obtaining a pointer to the SQ area from the system, then cast the pointer to
some user defined data struct to be filled in and write data to the SQ area by
setting members in the struct.  However, the members of such a struct must all
be accessed with 32 or 64 bit mem refs.  For example this would be invalid:

struct
{
  int a, b, c;
  char d0,d1,d2,d3;
  int x[4];
};

If I'm not mistaken, such invalid mem refs can be avoided by adding a target
specific address space.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]