I like John's question at least as much for what our answers say about us as for the technical content ...
Anyway. 1) No, but I use ICM to retrieve the values, a habit from the days when alignment mattered more. I suppose that implies I don't think not being on a fullword boundary is an error, though I always fullword align parameter lists I'm passing to other code. 2) Since I follow each ICM with branches to detect a zero parameter address (which may or not be valid, depending on what I'm doing) or end-of-list, I suppose I do. If the situation calls for a specific number of parameters and I get a different number, that's an immediate exit with indicative return code. Depending on the situation, of course, there may be more paranoia, but rarely less, even when I wrote both the calling and called routines. (I know I can't trust me, because that's what they want me to think.) Steve On Wed, 11 Aug 2010, McKown, John wrote: > This is just curiousity on my part. I was thinking about standard ... > 1) do you check to make sure that R1 actually points to a fullword > boundry. I.e. bits 30&31 are '0'b? Is this necessary or not? If R1 > doesn't point to a fullword boundry, is that actually an error? That > is, do you feel that a proper parameter list must be fullword > aligned? > > 2) do you always verify bit 0 of every fullword in the list of addresses > to make sure that you get the expected number of parameters? What do > you do if you get too few or too many? -- Steve Marak -- [email protected]
