Lines Matching full:we
31 // so we need to do a few extra checks at the beginning because the
32 // string may not be 8-byte aligned. In this case we load the 8byte
35 // We use speculative loads and software pipelining to hide memory
36 // latency and do read ahead safely. This way we defer any exception.
38 // Because we don't want the kernel to be relying on particular
39 // settings of the DCR register, we provide recovery code in case
41 // only normal loads. If we still get a fault then we generate a
42 // kernel panic. Otherwise we return the strlen as usual.
50 // It should be noted that we execute recovery code only when we need
51 // to use the data that has been speculatively loaded: we don't execute
56 // register to 1. This is required to make sure that we get the parallel
59 // - we don't use the epilogue counter to exit the loop but we need to set
62 // - after the loop we must test for Nat values because neither the
63 // czx nor cmp instruction raise a NaT consumption fault. We must be
64 // careful not to look too far for a Nat for which we don't care.
65 // For instance we don't need to look at a NaT in val2 if the zero byte
111 or v[1]=v[1],mask // now we have a safe initial byte pattern
124 // We must return try the recovery code iff
135 // if we come here p7 is true, i.e., initialized for // cmp
156 // This time we don't use speculation and rely on the normal exception
162 // we don't use the exception mechanism, as this function is not
163 // supposed to fail. If that happens it means we have a bug and the
167 // - today we restart from the beginning of the string instead
168 // of trying to continue where we left off.