From: Stephen W. <st...@ic...> - 2008-01-11 18:53:47
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Cary R. wrote: > --- Stephen Williams <st...@ic...> wrote: >> Actually, I think there was an obscure reason for the way it is >> currently. I recall that it's current behavior is used to do some >> specialized part selects in place. For example, if a smaller >> load width N is given, then only the first N bits are loaded. >> This is a common case. It might be that %load/vp0 is not used >> that way, but I'm pretty sure that %load/v is. > > I didn't change %load/v so it should be safe. I'll double check %load/vp0 > to make sure it's not used in this manner. If it is I think we will have > to add a parameter to pass the value and increase the size of the opcode > table or do the part select a different way. Do you have a preference? You mean increasing the size of the vvp_code_s struct? This is the fixed size of each instruction in the code stream, so increasing this will increase proportional to the number of instructions the run-time use. This might not be significant in the end. > To me increasing the size of the opcode table is the most straight forward > way to solve this if it is a problem. I don't think the increased table > size is that significant. It is true that there are some instructions that are just plain bizarre in the lengths taken to avoid adding another operand. Maybe it's time to add another operand slot just for that reason:-/ It would mean updating the rather intense opcode table, but that's just grunt work. Another way to handle this that doesn't increase the size of the table might me to create a bit_idx2[4] member in the second union of the table that has 4 small integers. Instructions that are heavily laden with index numbers could take advantage of this new operand format, would remain compact, and would make lots of better use of word registers. - -- Steve Williams "The woods are lovely, dark and deep. steve at icarus.com But I have promises to keep, http://www.icarus.com and lines to code before I sleep, http://www.picturel.com And lines to code before I sleep." -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFHh7s8rPt1Sc2b3ikRAiggAJ44EF9rkQx7JAEchHVRuwh/PN9ZtACfT1Rt d4zRMovVQ9HBNhaXGShNsPw= =dS1y -----END PGP SIGNATURE----- |