aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2015-08-03 23:06:40 +0200
committerAlexey Kardashevskiy <aik@ozlabs.ru>2015-08-05 16:02:34 +1000
commit86b2718b467f8edd95a7fe176842a7b6a73ea8e8 (patch)
treea99581c1df6585df63f253211e728669d9a1e899 /include
parentf879da79485daf0f8aa745402c64a3036aae6bc0 (diff)
downloadSLOF-86b2718b467f8edd95a7fe176842a7b6a73ea8e8.zip
SLOF-86b2718b467f8edd95a7fe176842a7b6a73ea8e8.tar.gz
SLOF-86b2718b467f8edd95a7fe176842a7b6a73ea8e8.tar.bz2
Add missing half word access case to _FASTRMOVE and _FASTMOVE
The _FASTRMOVE and _FASTMOVE macros are missing the case where the alignment matches "6" - in this case, the copying can also be done with 16-bit accesses. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Diffstat (limited to 'include')
-rw-r--r--include/ppc970/cache.h8
-rw-r--r--include/ppcp7/cache.h8
2 files changed, 8 insertions, 8 deletions
diff --git a/include/ppc970/cache.h b/include/ppc970/cache.h
index cc23d82..500182e 100644
--- a/include/ppc970/cache.h
+++ b/include/ppc970/cache.h
@@ -55,8 +55,8 @@ cache_inhibited_access(uint64_t, 64)
#define _FASTMOVE(s, d, size) \
switch (((type_u)s | (type_u)d | size) & (sizeof(type_u)-1)) { \
case 0: _MOVE(s, d, size, type_u); break; \
- case sizeof(type_l): _MOVE(s, d, size, type_l); break; \
- case sizeof(type_w): _MOVE(s, d, size, type_w); break; \
+ case 4: _MOVE(s, d, size, type_l); break; \
+ case 2: case 6: _MOVE(s, d, size, type_w); break; \
default: _MOVE(s, d, size, type_c); break; \
}
@@ -78,8 +78,8 @@ cache_inhibited_access(uint64_t, 64)
#define _FASTRMOVE(s, d, size) \
switch (((type_u)s | (type_u)d | size) & (sizeof(type_u)-1)) { \
case 0: _RMOVE(s, d, size, type_u); break; \
- case sizeof(type_l): _RMOVE(s, d, size, type_l); break; \
- case sizeof(type_w): _RMOVE(s, d, size, type_w); break; \
+ case 4: _RMOVE(s, d, size, type_l); break; \
+ case 2: case 6: _RMOVE(s, d, size, type_w); break; \
default: _RMOVE(s, d, size, type_c); break; \
}
diff --git a/include/ppcp7/cache.h b/include/ppcp7/cache.h
index c64b4c6..27975f0 100644
--- a/include/ppcp7/cache.h
+++ b/include/ppcp7/cache.h
@@ -81,8 +81,8 @@ cache_inhibited_access(uint64_t, 64)
#define _FASTMOVE(s, d, size) \
switch (((type_u)s | (type_u)d | size) & (sizeof(type_u)-1)) { \
case 0: _MOVE(s, d, size, type_u); break; \
- case sizeof(type_l): _MOVE(s, d, size, type_l); break; \
- case sizeof(type_w): _MOVE(s, d, size, type_w); break; \
+ case 4: _MOVE(s, d, size, type_l); break; \
+ case 2: case 6: _MOVE(s, d, size, type_w); break; \
default: _MOVE(s, d, size, type_c); break; \
}
@@ -116,8 +116,8 @@ static inline void ci_rmove(void *dst, void *src, unsigned long esize,
#define _FASTRMOVE(s, d, size) do { \
switch (((type_u)s | (type_u)d | size) & (sizeof(type_u)-1)) {\
case 0: ci_rmove(d,s,3,size>>3); break; \
- case sizeof(type_l): ci_rmove(d,s,2,size>>2); break; \
- case sizeof(type_w): ci_rmove(d,s,1,size>>1); break; \
+ case 4: ci_rmove(d,s,2,size>>2); break; \
+ case 2: case 6: ci_rmove(d,s,1,size>>1); break; \
default: ci_rmove(d,s,0,size); break; \
} \
} while(0)