This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/55300] New: [SH] Add support for store queue address space
- From: "olegendo at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 12 Nov 2012 23:51:04 +0000
- Subject: [Bug target/55300] New: [SH] Add support for store queue address space
- Auto-submitted: auto-generated
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.