Mercurial > repos > tabletprog
comparison cbackend.js @ 325:4a79311dbd29
Added conversion methods between integer and float types
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 24 Mar 2015 21:49:45 -0700 |
parents | 1debeb21dd47 |
children | eef8a5cea812 |
comparison
equal
deleted
inserted
replaced
324:615f23450f8f | 325:4a79311dbd29 |
---|---|
859 'return &(' + retName + '->header);' | 859 'return &(' + retName + '->header);' |
860 ] | 860 ] |
861 }); | 861 }); |
862 } | 862 } |
863 } | 863 } |
864 if (size > 16) { | |
865 var retType = 'obj_float' + size; | |
866 var retName = 'retfloat' + size; | |
867 var vars = {}; | |
868 vars[retName] = retType + ' *'; | |
869 intObj.addMessage((size > bits ? 'f' : 'truncF') + size, { | |
870 vars: vars, | |
871 lines: [ | |
872 retName + ' = make_object(&' + retType + '_meta, NULL, 0);', | |
873 retName + '->num = self->num;', | |
874 'return &(' + retName + '->header);' | |
875 ] | |
876 }) | |
877 } | |
864 } | 878 } |
865 | 879 |
866 return intObj; | 880 return intObj; |
867 } | 881 } |
868 | 882 |
898 'trans = make_object(&obj_float' + (bits == 32 ? 64 : 32) + '_meta, NULL, 0);', | 912 'trans = make_object(&obj_float' + (bits == 32 ? 64 : 32) + '_meta, NULL, 0);', |
899 'trans->num = self->num;', | 913 'trans->num = self->num;', |
900 'return &(trans->header);' | 914 'return &(trans->header);' |
901 ] | 915 ] |
902 }); | 916 }); |
917 var sizes = [8, 16, 32, 64]; | |
918 var prefixes = ['U', '']; | |
919 for (var i = 0; i < sizes.length; i++) { | |
920 for (var j = 0; j < prefixes.length; j++) { | |
921 var ret = 'ret' + i + j; | |
922 var vars = {}; | |
923 var retType = 'obj_' + prefixes[j].toLowerCase() + 'int' + sizes[i]; | |
924 vars[ret] = retType + ' *'; | |
925 floatObj.addMessage('trunc' + prefixes[j] + 'Int' + sizes[i], { | |
926 vars: vars, | |
927 lines: [ | |
928 ret + ' = make_object(&' + retType + '_meta, NULL, 0);', | |
929 ret + '->num = self->num;', | |
930 'return &(' + ret + '->header);' | |
931 ] | |
932 }); | |
933 } | |
934 } | |
903 return floatObj; | 935 return floatObj; |
904 } | 936 } |
905 | 937 |
906 function makeCPointer() | 938 function makeCPointer() |
907 { | 939 { |