On Mon, Jul 12, 2010 at 2:25 AM, Gabe Black <[email protected]> wrote:
> Steve Reinhardt wrote: > > On Sat, Jul 10, 2010 at 11:37 PM, Gabe Black <[email protected]> > wrote: > > > >> In ARM's SIMD instruction set extension Neon, there are some > >> instructions which can load or store 3 of something, and that something > >> can be 1, 2, 4, or 8 bytes. To implement this properly, I'm planning to > >> add readBytes and writeBytes functions to the various ExecContexts which > >> would load/store some arbitrary (but practically bounded) number of > >> bytes without performing endian conversion. As a side benefit, this > >> should, I think, let us get rid of the twin data types in SPARC and the > >> various explicit template instantiations used to support them. I think > >> something like this came up for MIPS too, although I don't remember the > >> particulars. > >> > > > > How did we end up handling the MIPS instructions? I don't recall. > > > > Me either. Do you remember, Korey? Or whoever handled that if it wasn't > Korey? > Since awhile back, there was no *true* conclusion to this story. for MIPS, the problem can with unaligned load/stores I believe. For the loads, it wasnt a problem. Since you are restricted by the word size anyway, you just read the full word from the cache block and then "trim" off the # of bytes you need. For stores, there has been a stopgap solution (currently commented out I believe in MIPS ISA description) that will readFunctional the full word before editing the right bytes on the word and sending back through the memory system (in timing fashion). I want to say Matt (?) or someone actually fully implemented or attacked this problem recently (although Gabe's question makes me think otherwise). Regardless, having a send/receiveBytes that can be 1 or 3 bytes would be a huge YES in terms of support from me. Now that I think about it more, there has to be some discussion in the archives about this because I remember us going back/forth on whether there should be some type of struct or concatenation of chars or ??? to make an arbitrary sized # of bytes data packet. -- - Korey
_______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
