2010-01-11 4 views
15

एक recent question से प्रेरित होकर, मैं विधानसभा इनलाइन का सहारा या बिना किसी को भी जानता है gcc पाने के लिए लिनक्स x86-64 प्लेटफार्मों पर, x86-64 bts अनुदेश (बिट परीक्षण और सेट) उत्पन्न को जानना चाहते हैं गैर मानक कंपाइलर intrinsics के लिए।मानक सी से x86-64 के लिए 'बीटीएस' निर्देश उत्पन्न करने के लिए `gcc` कैसे प्राप्त करें?

संबंधित प्रश्न:

पोर्टेबिलिटी bts से मेरे लिए ज्यादा महत्वपूर्ण है, इसलिए मैं का उपयोग करेगा नहीं और asm निर्देश है, और हो, तो एक और समाधान, मैं कंपाइलर instrinsics का उपयोग नहीं करना पसंद करते हैं।

संपादित: सी स्रोत भाषा परमाणु संचालन का समर्थन नहीं करता, तो मैं विशेष रूप से परमाणु परीक्षण और सेट (हो रही है, भले ही उस के लिए मूल कारण में कोई दिलचस्पी नहीं है अस्तित्व के लिए परीक्षण और सेट पहली जगह में)। अगर मुझे कुछ परमाणु चाहिए तो मुझे पता है कि मुझे मानक सी स्रोत के साथ ऐसा करने का कोई मौका नहीं है: इसे एक आंतरिक, लाइब्रेरी फ़ंक्शन या इनलाइन असेंबली होना चाहिए। (मैंने कई धागे का समर्थन करने वाले कंपाइलर्स में परमाणु संचालन लागू किए हैं।)

+0

हम्म, अच्छा सवाल। मैं एआरएम + नीयन पर वेक्टर बिट-टेस्ट के लिए 'vtst_ *' देखता हूं, लेकिन कुछ भी सामान्य नहीं ... – ephemient

+7

यदि बीटीएस वास्तव में तेज़ है, तो एक बग रिपोर्ट भेजें। मुझे यकीन है कि जीसीसी प्रोग्रामर पहले ही बीटीएस के अस्तित्व के बारे में जानते हैं। आखिरकार, एक कंपाइलर को 1: 1 मैप करना नहीं चाहिए। – jbcreix

+1

बेहतर अभी भी, टेस्टकेस के साथ बीटीएस का उपयोग करने के लिए एक पैच भेजें जिसे साबित करने के लिए प्रोफाइल किया जा सकता है कि अनुकूलन सार्थक है। –

उत्तर

संबंधित मुद्दे

 संबंधित मुद्दे