Lines Matching +full:left +full:- +full:aligned
1 /* SPDX-License-Identifier: GPL-2.0 */
11 * Copyright (C) 1998, 1999, 2001 Hewlett-Packard Co
37 // - we check whether or not the buffer is small, i.e., less than 17
40 // - Otherwise we go progressively from 1 byte store to 8byte store in
65 adds tmp=-1,len // br.ctop is repeat/until
83 adds len=-1,len // countdown length using len
88 // len contains bytes left
99 // The use of len/len2 for countdown of the number of bytes left
106 EX( .Lexit3, (p6) st1 [buf]=r0,1 ) // 1-byte aligned
107 (p6) adds len=-1,len;; // sync because buf is modified
110 EX( .Lexit3, (p6) st2 [buf]=r0,2 ) // 2-byte aligned
111 (p6) adds len=-2,len;;
114 EX( .Lexit3, (p6) st4 [buf]=r0,4 ) // 4-byte aligned
115 (p6) adds len=-4,len;;
118 EX( .Lexit3, (p6) st8 [buf]=r0,8 ) // 8-byte aligned
119 (p6) adds len=-8,len;;
120 shr.u cnt=len,4 // number of 128-bit (2x64bit) words
123 adds tmp=-1,cnt
124 (p6) br.cond.dpnt .dotail // we have less than 16 bytes left
134 // we come into the loop only when we are 16-byte aligned.
140 // way would be to use ar.lc and derive how many byte were left by
141 // doing : left= 16*ar.lc + 16. this would avoid the addition at
152 adds len=-16,len
170 (p6) adds len3=-8,len2
174 (p7) adds len2=-4,len3
178 (p6) adds len3=-2,len2
181 EX( .Lexit2, (p7) st1 [buf]=r0 ) // only 1 byte left
191 // len contains bytes left
195 // if p6 -> coming from st8 or st2 : len2 contains what's left
196 // if p7 -> coming from st4 or st1 : len3 contains what's left
205 // len contains bytes left