मैं घंटों की खोज कर रहा हूं और मुझे कुछ भी नहीं मिला जो मेरी मदद कर सकता है। मैं एक प्रोजेक्ट पर काम कर रहा हूं जिसमें फंक्शनपास शामिल है। मैंने एक रनऑनफंक्शन (फंक्शन & एफ) विधि लागू की है और यह ठीक काम कर रहा है।एलएलवीएम निर्देश कैसे डालें?
1) एक दुकान अनुदेश
2) एक बिटवाइज़ और आपरेशन (0000FFFF का उपयोग कर पूर्णांक परिवर्तन एक पूर्णांक
3) करने के लिए दुकान शिक्षा का स्मृति पता कन्वर्ट)
का पता लगाने: मूल रूप से यह करने की जरूरत हैvirtual bool runOnFunction(Function &F) {
for (Function::iterator bb = F.begin(), bbe = F.end(); bb != bbe; ++bb) {
BasicBlock& b = *bb;
for (BasicBlock::iterator i = b.begin(), ie = b.end(); i != ie; ++i) {
if(StoreInst *si = dyn_cast<StoreInst>(&*i)) {
PtrToIntInst* ptrToInt = new PtrToIntInst(si->getPointerOperand(), IntegerType::get(si->getContext(), 32), "", si);
}
}
}
return true;
}
:
4) सूचक
अब तक मैं निम्नलिखित मिल गया है में वापस पूर्णांक कन्वर्ट
मैं अपने जीवन के लिए नहीं समझ सकता कि वास्तव में निर्देश कैसे डालना है, या यहां तक कि एक निर्देश बनाने के लिए एक रास्ता भी ढूंढना है। अगर कोई मुझे सही दिशा में इंगित कर सकता है, तो यह बहुत अच्छा होगा।
अग्रिम धन्यवाद।
आप एक संलग्न मूल ब्लॉक पास करने के मामले में टर्मिनेटर का ख्याल कैसे रखते हैं? – PatoBeltran
@PatoBeltran निर्देशों को जोड़ना इस तरह से मूल ब्लॉक के सत्यापन को ट्रिगर नहीं करता है, इसलिए आप उन मध्यवर्ती चरणों में एक विकृत मूल ब्लॉक हो सकते हैं। बस अपने पास फ़ंक्शन के साथ समाप्त होने से पहले टर्मिनेटर को अंत में रखना सुनिश्चित करें। – Oak