diff options
author | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-12 01:42:20 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-04-12 01:42:20 -0700 |
commit | 27afdf1a005c2e24af79107095aae3155e68b254 (patch) | |
tree | a5140912c1a50b8b9d4f6528244db3699c114446 /pk/memset.c | |
parent | 7e6145731f4d52e9b6a6383c650c8de68da7aa34 (diff) | |
download | pk-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.c | 7 |
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; |