2010-04-15 10 views
6

क्या x86 प्रोग्राम चलाने के लिए llvm का उपयोग करना संभव है? अर्थात। मैं x86 प्रोग्राम चलाने के लिए ll86 को x86 सिम्युलेटर के रूप में उपयोग करना चाहता हूं और उसके बाद x86 प्रोग्राम का उपयोग करना चाहता हूं।चल रहे x86 प्रोग्राम _on_ llvm

धन्यवाद!

+2

चार्ल्स बैबेज के शब्दों में, "मैं ठीक ही सक्षम विचारों का भ्रम की तरह है कि इस तरह के एक सवाल भड़काने सकता गिरफ्तार करने के लिए नहीं कर रहा हूँ।" –

+2

महान सवाल! मैंने वास्तव में कुछ हफ्ते पहले लिबसीयूयू के बारे में पढ़ा था, लेकिन इसके बारे में पूरी तरह से भूल गया था। इस सवाल ने मुझे वापस जाने और फिर इसे देखने के लिए प्रेरित किया। धन्यवाद! –

उत्तर

7

मुझे लगता है कि आप LibCPU देख रहे हैं।

इसमें an x86 frontend है (ठीक है, वास्तव में केवल 8086 इस समय है, और यह भी पूरा नहीं है, लेकिन वे इस पर काम कर रहे हैं), और चूंकि यह एलएलवीएम के शीर्ष पर बनाया गया है, यह स्पष्ट रूप से x86 बैकएंड भी है , इस प्रकार x86-on-x86 को चलाने के लिए इसे संभव बनाना, लेकिन इसे एलएलवीएम के अनुकूलन, उपकरण और विश्लेषण चरणों के माध्यम से गुजरना संभव है।

+0

क्या लिबसीयूयू 387 कोड (क्लासिक एफपीयू) के लिए काम कर सकता है? – osgx

1

इसके अलावा, qemu में LLVM का उपयोग करने के लिए एक प्रोजेक्ट था। यह एलएलवीएम के माध्यम से x86 कोड चलाने का भी एक तरीका है।

http://code.google.com/p/llvm-qemu/

यह GSoC परियोजना था, लेकिन SVN और लेखक में एक कोड परिणाम है:

regular qemu  llvm-qemu rle,dse,simple regalloc llvm-qemu full opts 
4m35.349s    5m39.697s      13m50.697s 

LLVM-qemu दो बार तीन बार qemu की तुलना में धीमी है, लेकिन यह काम करता है।

+1

स्पष्ट रूप से यह क्यूमु अनुकूलित करने के तरीके के रूप में कल्पना की गई थी। मुझे लगता है कि, इसे छोड़ने का कारण इन निराशाजनक परिणामों के कारण था। – TechZilla

0

मुझे libCPU नहीं पता, लेकिन libx86 है, जो कुछ बहुत समान करता है; यदि 32-बिट x86 प्रोसेसर (लेकिन 64-बिट मोड में नहीं) पर चल रहा है, तो यह कहीं और चलने पर वर्चुअल 8086 प्रक्रिया चलाता है, यह सॉफ़्टवेयर में 8086 अनुकरण करने का प्रयास करता है। बहुत अच्छा। हालांकि दस्तावेज़ीकरण अपेक्षाकृत दुर्लभ है।

http://www.codon.org.uk/~mjg59/libx86/

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