Mercurial > octave-nkf
comparison libinterp/corefcn/jit-typeinfo.h @ 18582:c31fe3239c8b draft
partial support of single/uint16
author | LYH <lyh.kernel@gmail.com> |
---|---|
date | Fri, 21 Mar 2014 14:59:38 -0400 |
parents | 4d90e104bf35 |
children | 67445219aee2 |
comparison
equal
deleted
inserted
replaced
18581:f3314c4b9266 | 18582:c31fe3239c8b |
---|---|
455 | 455 |
456 static jit_type *get_scalar (void) { return instance->scalar; } | 456 static jit_type *get_scalar (void) { return instance->scalar; } |
457 | 457 |
458 static llvm::Type *get_scalar_llvm (void) | 458 static llvm::Type *get_scalar_llvm (void) |
459 { return instance->scalar->to_llvm (); } | 459 { return instance->scalar->to_llvm (); } |
460 | |
461 static jit_type *get_single (void) { return instance->single; } | |
460 | 462 |
461 static jit_type *get_scalar_ptr (void) { return instance->scalar_ptr; } | 463 static jit_type *get_scalar_ptr (void) { return instance->scalar_ptr; } |
462 | 464 |
463 static jit_type *get_any_ptr (void) { return instance->any_ptr; } | 465 static jit_type *get_any_ptr (void) { return instance->any_ptr; } |
464 | 466 |
788 | 790 |
789 llvm::Value *complex_new (llvm::Value *real, llvm::Value *imag); | 791 llvm::Value *complex_new (llvm::Value *real, llvm::Value *imag); |
790 | 792 |
791 void create_int (size_t nbits); | 793 void create_int (size_t nbits); |
792 | 794 |
795 void create_uint (size_t nbits); | |
796 | |
793 jit_type *intN (size_t nbits) const; | 797 jit_type *intN (size_t nbits) const; |
798 | |
799 jit_type *uintN (size_t nbits) const; | |
794 | 800 |
795 static jit_typeinfo *instance; | 801 static jit_typeinfo *instance; |
796 | 802 |
797 llvm::Module *module; | 803 llvm::Module *module; |
798 llvm::ExecutionEngine *engine; | 804 llvm::ExecutionEngine *engine; |
805 | 811 |
806 std::vector<jit_type*> id_to_type; | 812 std::vector<jit_type*> id_to_type; |
807 jit_type *any; | 813 jit_type *any; |
808 jit_type *matrix; | 814 jit_type *matrix; |
809 jit_type *scalar; | 815 jit_type *scalar; |
816 jit_type *single; | |
810 jit_type *scalar_ptr; // a fake type for interfacing with C++ | 817 jit_type *scalar_ptr; // a fake type for interfacing with C++ |
811 jit_type *any_ptr; // a fake type for interfacing with C++ | 818 jit_type *any_ptr; // a fake type for interfacing with C++ |
812 jit_type *range; | 819 jit_type *range; |
813 jit_type *string; | 820 jit_type *string; |
814 jit_type *boolean; | 821 jit_type *boolean; |
815 jit_type *index; | 822 jit_type *index; |
816 jit_type *complex; | 823 jit_type *complex; |
817 jit_type *unknown_function; | 824 jit_type *unknown_function; |
818 std::map<size_t, jit_type *> ints; | 825 std::map<size_t, jit_type *> ints; |
826 std::map<size_t, jit_type *> uints; | |
819 std::map<std::string, jit_type *> builtins; | 827 std::map<std::string, jit_type *> builtins; |
820 | 828 |
821 llvm::StructType *complex_ret; | 829 llvm::StructType *complex_ret; |
822 | 830 |
823 std::vector<jit_operation> binary_ops; | 831 std::vector<jit_operation> binary_ops; |