|
@@ -138,19 +138,13 @@ finv_buffer_remote(void *buffer, size_t size, int hfh)
|
|
|
if ((unsigned long)base < (unsigned long)buffer)
|
|
|
base = buffer;
|
|
|
|
|
|
- /*
|
|
|
- * Fire all the loads we need. The MAF only has eight entries
|
|
|
- * so we can have at most eight outstanding loads, so we
|
|
|
- * unroll by that amount.
|
|
|
- */
|
|
|
-#pragma unroll 8
|
|
|
+ /* Fire all the loads we need. */
|
|
|
for (; p >= base; p -= step_size)
|
|
|
force_load(p);
|
|
|
|
|
|
/*
|
|
|
* Repeat, but with finv's instead of loads, to get rid of the
|
|
|
* data we just loaded into our own cache and the old home L3.
|
|
|
- * No need to unroll since finv's don't target a register.
|
|
|
* The finv's are guaranteed not to actually flush the data in
|
|
|
* the buffer back to their home, since we just read it, so the
|
|
|
* lines are clean in cache; we will only invalidate those lines.
|