Mercurial > repos > tabletprog
diff cbackend.js @ 79:7f635666c73d
Add hash and int32 messages to string. Add hash message to int32. Update compile script
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 16 Jul 2012 01:10:12 -0700 |
parents | abc6f3d644a4 |
children | 9811040704ac |
line wrap: on
line diff
--- a/cbackend.js Sun Jul 15 18:11:00 2012 -0700 +++ b/cbackend.js Mon Jul 16 01:10:12 2012 -0700 @@ -448,6 +448,12 @@ 'return &(str->header);' ] }); + int32.addMessage('hash', { + vars: {}, + lines: [ + 'return &(self->header);' + ] + }); return int32; } @@ -592,6 +598,29 @@ 'return &(intret->header);' ] }); + string.addMessage('int32', { + vars: {intret: 'obj_int32 *'}, + lines: [ + 'intret = (obj_int32 *)make_object(&obj_int32_meta, NULL, 0);', + 'intret->num = atoi(self->data);', + 'return &(intret->header);' + ] + }); + string.addMessage('hash', { + vars: {intret: 'obj_int32 *', i: 'uint32_t'}, + lines: [ + 'intret = (obj_int32 *)make_object(&obj_int32_meta, NULL, 0);', + 'intret->num = 0;', + 'if (self->bytes) {', + ' intret->num = self->data[0] << 7;', + ' for (i = 0; i < self->bytes; i++) {', + ' intret->num = (1000003 * intret->num) ^ self->data[i];', + ' }', + ' intret->num = intret->num ^ self->bytes;', + '}', + 'return &(intret->header);' + ] + }); return string; }