annotate runtime/blueprint.c @ 92:e73a93fb5de1

Beginning of port of compiler to itself, some bugfixes and a refcount optimization
author Mike Pavone <pavone@retrodev.com>
date Mon, 02 Aug 2010 00:58:55 -0400
parents d4b44ae2e34a
children 43cc42df26cc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #include "blueprint.h"
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #include "builtin.h"
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
3 #include "context.h"
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
4 #include <stddef.h>
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 typedef struct
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 {
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 blueprint * bp;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 } l_Build;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 object * make_Blueprint(int32_t type_id)
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 {
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 t_Blueprint * obj;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 object * ret = new_object(TYPE_BLUEPRINT);
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 obj = (t_Blueprint *)ret;
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
16 obj->bp = type_id ? get_blueprint_byid(type_id) : NULL;
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 return ret;
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
18 }
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
19
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
20 int32_t _internal_blueprint_eq(object * left, object * right)
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
21 {
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
22 t_Blueprint * l = (t_Blueprint *)left;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
23 t_Blueprint * r = (t_Blueprint *)right;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
24 return l->bp == r->bp;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
25 }
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
26
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
27