aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/runtime.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/runtime/runtime.c')
-rw-r--r--src/pkg/runtime/runtime.c332
1 files changed, 0 insertions, 332 deletions
diff --git a/src/pkg/runtime/runtime.c b/src/pkg/runtime/runtime.c
index a609a26f80..ed46150ea5 100644
--- a/src/pkg/runtime/runtime.c
+++ b/src/pkg/runtime/runtime.c
@@ -322,338 +322,6 @@ runtime·check(void)
runtime·initsig(0);
}
-/*
- * map and chan helpers for
- * dealing with unknown types
- */
-static uintptr
-memhash(uint32 s, void *a)
-{
- byte *b;
- uintptr hash;
-
- b = a;
- if(sizeof(hash) == 4)
- hash = 2860486313U;
- else
- hash = 33054211828000289ULL;
- while(s > 0) {
- if(sizeof(hash) == 4)
- hash = (hash ^ *b) * 3267000013UL;
- else
- hash = (hash ^ *b) * 23344194077549503ULL;
- b++;
- s--;
- }
- return hash;
-}
-
-static uint32
-memequal(uint32 s, void *a, void *b)
-{
- byte *ba, *bb, *aend;
-
- if(a == b)
- return 1;
- ba = a;
- bb = b;
- aend = ba+s;
- while(ba != aend) {
- if(*ba != *bb)
- return 0;
- ba++;
- bb++;
- }
- return 1;
-}
-
-static void
-memprint(uint32 s, void *a)
-{
- uint64 v;
-
- v = 0xbadb00b;
- switch(s) {
- case 1:
- v = *(uint8*)a;
- break;
- case 2:
- v = *(uint16*)a;
- break;
- case 4:
- v = *(uint32*)a;
- break;
- case 8:
- v = *(uint64*)a;
- break;
- }
- runtime·printint(v);
-}
-
-static void
-memcopy(uint32 s, void *a, void *b)
-{
- if(b == nil) {
- runtime·memclr(a,s);
- return;
- }
- runtime·memmove(a,b,s);
-}
-
-static uint32
-memequal8(uint32 s, uint8 *a, uint8 *b)
-{
- USED(s);
- return *a == *b;
-}
-
-static void
-memcopy8(uint32 s, uint8 *a, uint8 *b)
-{
- USED(s);
- if(b == nil) {
- *a = 0;
- return;
- }
- *a = *b;
-}
-
-static uint32
-memequal16(uint32 s, uint16 *a, uint16 *b)
-{
- USED(s);
- return *a == *b;
-}
-
-static void
-memcopy16(uint32 s, uint16 *a, uint16 *b)
-{
- USED(s);
- if(b == nil) {
- *a = 0;
- return;
- }
- *a = *b;
-}
-
-static uint32
-memequal32(uint32 s, uint32 *a, uint32 *b)
-{
- USED(s);
- return *a == *b;
-}
-
-static void
-memcopy32(uint32 s, uint32 *a, uint32 *b)
-{
- USED(s);
- if(b == nil) {
- *a = 0;
- return;
- }
- *a = *b;
-}
-
-static uint32
-memequal64(uint32 s, uint64 *a, uint64 *b)
-{
- USED(s);
- return *a == *b;
-}
-
-static void
-memcopy64(uint32 s, uint64 *a, uint64 *b)
-{
- USED(s);
- if(b == nil) {
- *a = 0;
- return;
- }
- *a = *b;
-}
-
-static uint32
-memequal128(uint32 s, uint64 *a, uint64 *b)
-{
- USED(s);
- return a[0] == b[0] && a[1] == b[1];
-}
-
-static void
-memcopy128(uint32 s, uint64 *a, uint64 *b)
-{
- USED(s);
- if(b == nil) {
- a[0] = 0;
- a[1] = 0;
- return;
- }
- a[0] = b[0];
- a[1] = b[1];
-}
-
-static void
-slicecopy(uint32 s, Slice *a, Slice *b)
-{
- USED(s);
- if(b == nil) {
- a->array = 0;
- a->len = 0;
- a->cap = 0;
- return;
- }
- a->array = b->array;
- a->len = b->len;
- a->cap = b->cap;
-}
-
-static uintptr
-strhash(uint32 s, String *a)
-{
- USED(s);
- return memhash((*a).len, (*a).str);
-}
-
-static uint32
-strequal(uint32 s, String *a, String *b)
-{
- int32 alen;
-
- USED(s);
- alen = a->len;
- if(alen != b->len)
- return false;
- return memequal(alen, a->str, b->str);
-}
-
-static void
-strprint(uint32 s, String *a)
-{
- USED(s);
- runtime·printstring(*a);
-}
-
-static void
-strcopy(uint32 s, String *a, String *b)
-{
- USED(s);
- if(b == nil) {
- a->str = 0;
- a->len = 0;
- return;
- }
- a->str = b->str;
- a->len = b->len;
-}
-
-static uintptr
-interhash(uint32 s, Iface *a)
-{
- USED(s);
- return runtime·ifacehash(*a);
-}
-
-static void
-interprint(uint32 s, Iface *a)
-{
- USED(s);
- runtime·printiface(*a);
-}
-
-static uint32
-interequal(uint32 s, Iface *a, Iface *b)
-{
- USED(s);
- return runtime·ifaceeq_c(*a, *b);
-}
-
-static void
-intercopy(uint32 s, Iface *a, Iface *b)
-{
- USED(s);
- if(b == nil) {
- a->tab = 0;
- a->data = 0;
- return;
- }
- a->tab = b->tab;
- a->data = b->data;
-}
-
-static uintptr
-nilinterhash(uint32 s, Eface *a)
-{
- USED(s);
- return runtime·efacehash(*a);
-}
-
-static void
-nilinterprint(uint32 s, Eface *a)
-{
- USED(s);
- runtime·printeface(*a);
-}
-
-static uint32
-nilinterequal(uint32 s, Eface *a, Eface *b)
-{
- USED(s);
- return runtime·efaceeq_c(*a, *b);
-}
-
-static void
-nilintercopy(uint32 s, Eface *a, Eface *b)
-{
- USED(s);
- if(b == nil) {
- a->type = 0;
- a->data = 0;
- return;
- }
- a->type = b->type;
- a->data = b->data;
-}
-
-uintptr
-runtime·nohash(uint32 s, void *a)
-{
- USED(s);
- USED(a);
- runtime·panicstring("hash of unhashable type");
- return 0;
-}
-
-uint32
-runtime·noequal(uint32 s, void *a, void *b)
-{
- USED(s);
- USED(a);
- USED(b);
- runtime·panicstring("comparing uncomparable types");
- return 0;
-}
-
-Alg
-runtime·algarray[] =
-{
-[AMEM] { memhash, memequal, memprint, memcopy },
-[ANOEQ] { runtime·nohash, runtime·noequal, memprint, memcopy },
-[ASTRING] { (void*)strhash, (void*)strequal, (void*)strprint, (void*)strcopy },
-[AINTER] { (void*)interhash, (void*)interequal, (void*)interprint, (void*)intercopy },
-[ANILINTER] { (void*)nilinterhash, (void*)nilinterequal, (void*)nilinterprint, (void*)nilintercopy },
-[ASLICE] { (void*)runtime·nohash, (void*)runtime·noequal, (void*)memprint, (void*)slicecopy },
-[AMEM8] { memhash, (void*)memequal8, memprint, (void*)memcopy8 },
-[AMEM16] { memhash, (void*)memequal16, memprint, (void*)memcopy16 },
-[AMEM32] { memhash, (void*)memequal32, memprint, (void*)memcopy32 },
-[AMEM64] { memhash, (void*)memequal64, memprint, (void*)memcopy64 },
-[AMEM128] { memhash, (void*)memequal128, memprint, (void*)memcopy128 },
-[ANOEQ8] { runtime·nohash, runtime·noequal, memprint, (void*)memcopy8 },
-[ANOEQ16] { runtime·nohash, runtime·noequal, memprint, (void*)memcopy16 },
-[ANOEQ32] { runtime·nohash, runtime·noequal, memprint, (void*)memcopy32 },
-[ANOEQ64] { runtime·nohash, runtime·noequal, memprint, (void*)memcopy64 },
-[ANOEQ128] { runtime·nohash, runtime·noequal, memprint, (void*)memcopy128 },
-};
-
void
runtime·Caller(int32 skip, uintptr retpc, String retfile, int32 retline, bool retbool)
{