का उपयोग कर फोन मैं LLVM विधानसभा कि तर्क के रूप में लेता है में एक समारोह को परिभाषित करना चाहते:LLVM विधानसभा: एक समारोह varargs
- एक उप कार्य करने के लिए एक पहचानकर्ता
- एक vararg
यह फ़ंक्शन को कुछ प्रीप्रोकैसिंग करना चाहिए, पहचानकर्ता के लिए सही फ़ंक्शन ढूंढें और इसे vararg का उपयोग करके कॉल करें, और इसके परिणाम को वापस कर दें।
कुछ की तरह:
define ??? @1 (i32 %identifier, ...vararg...)
{
switch i32 %identifier, label %def, i32 1, label %a
a:
%1 = tail call @function_for_a, ...vararg...
ret ??? %1
def:
ret void
}
यह संभव हो सकता है नहीं लगता है। क्या ऐसा करने का कोई तरीका है? मुझे लगता है कि यह सादे असेंबलर का उपयोग करना संभव होना चाहिए।
यह ऑब्जेक्ट उन्मुख भाषा के लिए एक प्रेषण कार्य होने का इरादा है। मैं इसे तेज़ होना पसंद करूंगा।
- ढेर से दूसरे कार्य करने के लिए @ 1
- शाखा द्वारा इस्तेमाल किया पहला तर्क निकालें:
क्या मैं चाहते हैं के लिए एक रास्ता है।
दूसरा फ़ंक्शन पहले (यह पूंछ कॉल है) के स्थान पर निष्पादित किया जाएगा, लेकिन तर्क की एक सूची के साथ जो पहले फ़ंक्शन (पहले फ़ंक्शन के vararg) के लिए बिल्कुल ज्ञात नहीं है।
क्या सी में ऐसे कोड को लिखने का विकल्प है, इसे क्लैंग/एलएलएमएम-जीसीसी के साथ संकलित करें और '.bc' को अलग करें? – osgx
एक llvm disassembler है: 'llvm-dis'। मैं जो करना चाहता हूं वह सी – Mildred