Mercurial > projects > ldc
comparison dmd/mtype.c @ 723:55f6c2e454d7
Implemented correct parameter order according to x86-32 ABI documentation.
Changed AA types to just a void* .
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sat, 25 Oct 2008 06:03:28 +0200 |
parents | e177ae483f8e |
children | 1ae94fb1dbbd |
comparison
equal
deleted
inserted
replaced
722:bd56056a581f | 723:55f6c2e454d7 |
---|---|
2671 this->retInPtr = false; | 2671 this->retInPtr = false; |
2672 this->usesThis = false; | 2672 this->usesThis = false; |
2673 this->usesNest = false; | 2673 this->usesNest = false; |
2674 this->retAttrs = 0; | 2674 this->retAttrs = 0; |
2675 this->thisAttrs = 0; | 2675 this->thisAttrs = 0; |
2676 this->reverseParams = false; | |
2677 this->reverseIndex = 0; | |
2676 } | 2678 } |
2677 | 2679 |
2678 Type *TypeFunction::syntaxCopy() | 2680 Type *TypeFunction::syntaxCopy() |
2679 { | 2681 { |
2680 Type *treturn = next ? next->syntaxCopy() : NULL; | 2682 Type *treturn = next ? next->syntaxCopy() : NULL; |
2683 t->retInPtr = retInPtr; | 2685 t->retInPtr = retInPtr; |
2684 t->usesThis = usesThis; | 2686 t->usesThis = usesThis; |
2685 t->usesNest = usesNest; | 2687 t->usesNest = usesNest; |
2686 t->retAttrs = retAttrs; | 2688 t->retAttrs = retAttrs; |
2687 t->thisAttrs = thisAttrs; | 2689 t->thisAttrs = thisAttrs; |
2690 t->reverseParams = reverseParams; | |
2691 t->reverseIndex = reverseIndex; | |
2688 return t; | 2692 return t; |
2689 } | 2693 } |
2690 | 2694 |
2691 /******************************* | 2695 /******************************* |
2692 * Returns: | 2696 * Returns: |
2792 case LINKd: mc = 'F'; break; | 2796 case LINKd: mc = 'F'; break; |
2793 case LINKc: mc = 'U'; break; | 2797 case LINKc: mc = 'U'; break; |
2794 case LINKwindows: mc = 'W'; break; | 2798 case LINKwindows: mc = 'W'; break; |
2795 case LINKpascal: mc = 'V'; break; | 2799 case LINKpascal: mc = 'V'; break; |
2796 case LINKcpp: mc = 'R'; break; | 2800 case LINKcpp: mc = 'R'; break; |
2801 | |
2802 // LDC | |
2803 case LINKintrinsic: mc = 'Q'; break; | |
2804 | |
2797 default: | 2805 default: |
2798 assert(0); | 2806 assert(0); |
2799 } | 2807 } |
2800 buf->writeByte(mc); | 2808 buf->writeByte(mc); |
2801 // Write argument types | 2809 // Write argument types |
2824 case LINKd: p = NULL; break; | 2832 case LINKd: p = NULL; break; |
2825 case LINKc: p = "C "; break; | 2833 case LINKc: p = "C "; break; |
2826 case LINKwindows: p = "Windows "; break; | 2834 case LINKwindows: p = "Windows "; break; |
2827 case LINKpascal: p = "Pascal "; break; | 2835 case LINKpascal: p = "Pascal "; break; |
2828 case LINKcpp: p = "C++ "; break; | 2836 case LINKcpp: p = "C++ "; break; |
2837 | |
2838 // LDC | |
2839 case LINKintrinsic: p = "Intrinsic"; break; | |
2840 | |
2829 default: | 2841 default: |
2830 assert(0); | 2842 assert(0); |
2831 } | 2843 } |
2832 } | 2844 } |
2833 | 2845 |
2859 case LINKd: p = NULL; break; | 2871 case LINKd: p = NULL; break; |
2860 case LINKc: p = "C "; break; | 2872 case LINKc: p = "C "; break; |
2861 case LINKwindows: p = "Windows "; break; | 2873 case LINKwindows: p = "Windows "; break; |
2862 case LINKpascal: p = "Pascal "; break; | 2874 case LINKpascal: p = "Pascal "; break; |
2863 case LINKcpp: p = "C++ "; break; | 2875 case LINKcpp: p = "C++ "; break; |
2876 | |
2877 // LDC | |
2878 case LINKintrinsic: p = "Intrinsic"; break; | |
2879 | |
2864 default: | 2880 default: |
2865 assert(0); | 2881 assert(0); |
2866 } | 2882 } |
2867 } | 2883 } |
2868 | 2884 |