aboutsummaryrefslogtreecommitdiff
path: root/pk/memset.c
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2011-04-12 01:42:20 -0700
committerAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2011-04-12 01:42:20 -0700
commit27afdf1a005c2e24af79107095aae3155e68b254 (patch)
treea5140912c1a50b8b9d4f6528244db3699c114446 /pk/memset.c
parent7e6145731f4d52e9b6a6383c650c8de68da7aa34 (diff)
downloadpk-27afdf1a005c2e24af79107095aae3155e68b254.zip
pk-27afdf1a005c2e24af79107095aae3155e68b254.tar.gz
pk-27afdf1a005c2e24af79107095aae3155e68b254.tar.bz2
[sim,pk] fixed minor pk bugs and trap codes
Diffstat (limited to 'pk/memset.c')
-rw-r--r--pk/memset.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/pk/memset.c b/pk/memset.c
index c77c45c..53ecc85 100644
--- a/pk/memset.c
+++ b/pk/memset.c
@@ -7,8 +7,12 @@
void* memset(void* m, int ch, size_t s)
{
- size_t i;
+ size_t i = 0;
char* mem = (char*)m;
+
+ if(s < 8*sizeof(long))
+ goto small;
+
if((long)m & (sizeof(long)-1))
{
size_t n = sizeof(long) - ((long)m & (sizeof(long)-1));
@@ -39,6 +43,7 @@ void* memset(void* m, int ch, size_t s)
lmem[i+7] = l;
}
+small:
for( ; i < s/sizeof(long); i++)
lmem[i] = l;