在这页,http://www.x86-64.org/pipermail/discuss/2004-August/005020.html 他说有一种方法可以在应用程序中混合使用32位代码和64位代码。他认为应用程序是32位(在兼容模式下),然后切换到64位模式以执行64位代码,反之亦然。是否可以通过模式切换在64位进程中执行32位代码?
假设我的操作系统是64位Linux,而我的应用程序是64位。我做了一个很大的跳转来切换到兼容模式并执行32位代码。当我进行系统调用或函数调用时它能正常工作吗?
兼容模式和64位模式之间是否存在模式切换的开销?我认为其中一个开销是我需要单独的堆栈来处理32位和64位。
我可以将此想法集成到JVM中,也许我可以在64位JVM中动态生成32位代码,并通过模式切换执行它?
如果您使用的是64位JVM,您为什么要生成32位代码?您可以在64位代码中完成所有您想要的(几乎)32位操作;即使在64位模式下,大多数指令也默认为32位操作数。 – 2011-02-22 16:58:51
因为我想比较32位代码和64位代码之间的区别。也许我可以在某些情况下得到不同的结果,例如长类型的大小,或每种情况下的执行时间。 – 2011-02-22 17:36:26