On 15/07/2012 08:23, Tobias Burnus wrote: > Dear all, > > that's a follow up cleanup to the patch, which has just been merged. > Most parts should be really obvious and nice, however, the offset part > isn't. As the offset is not part of the descriptor defined at DTS > 29113:2012's "8.2 C descriptors" (p. 17), we will have to drop it at > some point. Hence, I used the less readable name "tmp" and an integer > divide, instead of multiplying "stride" by "tmp" when setting the "sm" > and changing "tmp" to, e.g., "size". > > Bootstrapped (with C) and regtested on x86-64-linux. > OK for the branch? > OK. I guess the division will be dropped too (the middle-end does the reverse multiplication implicitly in the pointer arithmetic). I wonder which one is faster (the casts in the second version are certainly not nice for the middle-end):
ptr + (offset_in_bytes / elt_size_in_bytes) VS (sometype *) (((char *)ptr) + offset_in_bytes) Mikael