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