-
Notifications
You must be signed in to change notification settings - Fork 520
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
[mtouch] add mixed-mode support #4751
Changes from 1 commit
a0bb9db
a380b24
d3704d4
6020e98
26fb75c
8e52101
7629ec6
f7e11cf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -456,6 +456,7 @@ public static string GetAotArguments (Application app, string filename, Abi abi, | |
bool enable_debug_symbols = app.PackageManagedDebugSymbols; | ||
bool llvm_only = app.EnableLLVMOnlyBitCode; | ||
bool interp = app.UseInterpreter; | ||
bool interp_mixed = app.UseInterpreterMixed; | ||
bool is32bit = (abi & Abi.Arch32Mask) > 0; | ||
string arch = abi.AsArchString (); | ||
|
||
|
@@ -476,6 +477,8 @@ public static string GetAotArguments (Application app, string filename, Abi abi, | |
args.Append ("llvmonly,"); | ||
else if (interp) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suggest to add an assert here, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Don't you mean that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, other assemblies than However, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah, I see your point, for other interpreted assemblies this method ( |
||
args.Append ("interp,"); | ||
else if (interp_mixed) | ||
args.Append ("interp,full,"); | ||
else | ||
args.Append ("full,"); | ||
|
||
|
@@ -641,7 +644,7 @@ public static string GenerateMain (Application app, IEnumerable<Assembly> assemb | |
sw.WriteLine ("xamarin_profiler_symbol_def xamarin_profiler_symbol = NULL;"); | ||
} | ||
|
||
if (app.UseInterpreter) { | ||
if (app.UseInterpreter || app.UseInterpreterMixed) { | ||
sw.WriteLine ("extern \"C\" { void mono_ee_interp_init (const char *); }"); | ||
sw.WriteLine ("extern \"C\" { void mono_icall_table_init (void); }"); | ||
sw.WriteLine ("extern \"C\" { void mono_marshal_ilgen_init (void); }"); | ||
|
@@ -657,7 +660,7 @@ public static string GenerateMain (Application app, IEnumerable<Assembly> assemb | |
|
||
if (app.EnableLLVMOnlyBitCode) | ||
sw.WriteLine ("\tmono_jit_set_aot_mode (MONO_AOT_MODE_LLVMONLY);"); | ||
else if (app.UseInterpreter) { | ||
else if (app.UseInterpreter || app.UseInterpreterMixed) { | ||
sw.WriteLine ("\tmono_icall_table_init ();"); | ||
sw.WriteLine ("\tmono_marshal_ilgen_init ();"); | ||
sw.WriteLine ("\tmono_method_builder_ilgen_init ();"); | ||
|
@@ -866,7 +869,7 @@ public static bool CanWeSymlinkTheApplication (Application app) | |
if (app.EnableSGenConc) | ||
return false; | ||
|
||
if (app.UseInterpreter) | ||
if (app.UseInterpreter || app.UseInterpreterMixed) | ||
return false; | ||
|
||
if (app.Registrar == RegistrarMode.Static) | ||
|
@@ -1248,6 +1251,7 @@ static Application ParseArguments (string [] args, out Action a) | |
} | ||
}, | ||
{ "interpreter", "Enable the *experimental* interpreter.", v => { app.UseInterpreter = true; }}, | ||
{ "interp-mixed", "Enable the *experimental* interpreter mixed with AOT mode.", v => { app.UseInterpreterMixed = true; }}, | ||
{ "http-message-handler=", "Specify the default HTTP message handler for HttpClient", v => { http_message_handler = v; }}, | ||
{ "output-format=", "Specify the output format for some commands. Possible values: Default, XML", v => | ||
{ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indeed, that condition is can't work if we're mixing