Index: libsm/memcpyw.c
===================================================================
--- libsm/memcpyw.c	(revision 6dbed5293fb864c483911c8f53245e66497de9e9)
+++ libsm/memcpyw.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
@@ -11,8 +11,8 @@
 #include "ram.h"
 
-void *memcpyw(void *vp1, void *vp2, int16_t n)
+volatile void *memcpyw(volatile void *vp1, volatile void *vp2, int16_t n)
 {
-	int16_t *sp1 = vp1;
-	int16_t *sp2 = vp2;
+	volatile int16_t *sp1 = vp1;
+	volatile int16_t *sp2 = vp2;
 
 	while (--n >= 0)
Index: libsm/memcpyw.x
===================================================================
--- libsm/memcpyw.x	(revision 6dbed5293fb864c483911c8f53245e66497de9e9)
+++ libsm/memcpyw.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
@@ -15,3 +15,3 @@
 */
 
-extern	void		*memcpyw(void *vp1, void *vp2, int16_t n);
+extern	volatile void	*memcpyw(volatile void *vp1, volatile void *vp2, int16_t n);
Index: libsm/memsetw.c
===================================================================
--- libsm/memsetw.c	(revision 6dbed5293fb864c483911c8f53245e66497de9e9)
+++ libsm/memsetw.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
@@ -11,7 +11,7 @@
 #include "ram.h"
 
-void *memsetw(void *vp, uint16_t s, int16_t n)
+volatile void *memsetw(volatile void *vp, uint16_t s, int16_t n)
 {
-	uint16_t *sp = vp;
+	volatile uint16_t *sp = vp;
 
 	while (--n >= 0)
Index: libsm/memsetw.x
===================================================================
--- libsm/memsetw.x	(revision 6dbed5293fb864c483911c8f53245e66497de9e9)
+++ libsm/memsetw.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
@@ -15,3 +15,3 @@
 */
 
-extern	void		*memsetw(void *vp, uint16_t s, int16_t n);
+extern	volatile void	*memsetw(volatile void *vp, uint16_t s, int16_t n);
