-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Add tcg-interpreter (tci) #1695
Comments
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days. |
Hello, It looks like the stale label has been removed recently, is there any active work on this feature ? |
Hello, any plans? |
I tried adding TCTI to unicorn and successfully passed the test-arm64, but I wasn't sure if there was some problems since it only took me one afternoon |
Thanks for your work and it’s a good step indeed. You will need to make your features work with our other components and make at least CI work. It would be better if you write unit tests and samples.
…________________________________
From: abcdefg ***@***.***>
Sent: Monday, February 5, 2024 5:09:17 PM
To: unicorn-engine/unicorn ***@***.***>
Cc: Subscribed ***@***.***>
Subject: Re: [unicorn-engine/unicorn] Feature Request: Add tcg-interpreter (tci) (Issue #1695)
I tried adding TCTI to unicorn<https://github.com/61bcdefg/unicorn-tcti> and successfully passed the test-arm64, but I wasn't sure if there was some problems since it only took me one afternoon
―
Reply to this email directly, view it on GitHub<#1695 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AHJULO7TCBSQMQE5USY44BLYSCOT3AVCNFSM57W7KT42U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJSGY2TCOJVGEZA>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Out of curiosity, why the non-target-dependent version of tci, which is available in qemu upstream , is removed in unicorn? |
Porting new host architecture is not as easy as it seems. |
My understanding of qemu (which is ~0 when compared to you), is that tci is designed to be a universal tcg-IR interpreter? I don't understand why that requires porting, though I only need instruction-level / mem access emulation and nothing else which probably why I'm ignorant |
Porting to Unicorn means we need to support the mechanism of various functionalities provided by Unicorn like hooks, start/stop anywhere etc. Each requires efforts to modify either frontend or backend of tcg, which applies to any target/host. For instance, QEMU by itself is never designed to be able to stop at any address and thus Unicorn actually silently inserts exceptions at the exit point to allow users to stop emulation at any time (and ignore the spurious exceptions of course). * |
Thanks. Is there any suggestion to someone who is interested in porting tci but lacks understanding of qemu/uc internals? |
Generally, the port above by 61bcdefg seems a good start. The rough process is:
If you (or anyone) are interested, I'm happy to provide higher-level suggestions because my time has been limited recently, and I need to fix a few more urgent issues for the next release. My contacts are available in my GitHub profile. |
Is there any chance we could add the tci interpreter to unicorn to support interpreted running mode.
This will allow unicorn to run on platforms on which JIT (or allocating memory with EXEC at runtime) is not allowed, such as un-jailbreaked iOS devices.
Also, the UTM project uses a threaded interpreter tcg backend to achieve better performance, which could also be an option for us.
The text was updated successfully, but these errors were encountered: