2012-05-08 9 views
5

मैं वर्तमान में एआरएम के लिए लिखे गए एक कंपाइलर को दूसरे लक्ष्य आर्किटेक्चर में भेज रहा हूं। मैंने पाया कि एआरएम के लिए ABI के दो अलग-अलग प्रकार मौजूद हैं: APCS_ABI और AAPCS_ABIएआरएम: एपीसीएस और एएपीसीएस एबीआई के बीच क्या अंतर है?

मैंने इसे गुगल किया और एआरएम मैनुअल का संदर्भ दिया, लेकिन उनके बीच अंतर नहीं मिला।

कंपाइलर बैकएंड के कार्यान्वयन में, हालांकि, ABIs के दो प्रकारों का अलग-अलग व्यवहार किया जाता है और अलग-अलग कार्यान्वयन होते हैं।

वैसे, APCS एआरएम प्रक्रिया कॉल मानक का संक्षिप्त नाम है, और एआरएम आर्किटेक्चर के लिए प्रक्रिया कॉल मानक के AAPCS का संक्षिप्त नाम है। (क्या उनका मतलब एक ही बात नहीं है?)

तो APCS और AAPCS के बीच क्या अंतर है? दो अलग-अलग प्रकार के ABIs क्यों परिभाषित किए गए हैं?

उत्तर

9
ARM docs से

,

पीसीएस प्रक्रिया कॉल स्टैंडर्ड।

एआरएम आर्किटेक्चर (यह मानक) के लिए एएपीसीएस प्रक्रिया कॉल मानक। (वर्तमान मानक)

APCs एआरएम प्रक्रिया कॉल स्टैंडर्ड (अप्रचलित)।

इसके अलावा, समान दस्तावेज़ से,

AAPCS APCs और तीसरे TPCS की प्रमुख संशोधन के पांचवें प्रमुख संशोधन का प्रतीक है। यह एआरएम आर्किटेक्चर के लिए पूर्ण एबीआई विनिर्देश का हिस्सा बनता है।

तो तुम obsoleted APCS के बारे में भूल जाते हैं और निम्नलिखित शुरू कर सकते हैं AAPCS