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: unassig...@gcc.gnu.org

        ReportedBy: olege...@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.

Reply via email to