From c7389bd69e570a2c8432b37399aff1976b021f0f Mon Sep 17 00:00:00 2001 From: Andrew Hsieh Date: Tue, 13 Mar 2012 02:13:40 -0700 Subject: 64-bit emulator Patch to allow emulator searches for emulator64-${ARCH} first on 64-bit OS. If none is found, the original behavior which searchs for 32-bit emulator-${ARCH} is performed as usual. 64-bit emulator (which still emulates Android built in 32-bit) offers up to 20% speedup compared to its 32-bit counterpart. Details: android/main-emulator.c 1) search emulator64 based on the OS 2) dlopen lib64OpenglRender in 64-bit Makefile.* 1) Rules to build 64-bit executable emulator64-{x86,arm} and libraries emulator64-{libui,libqemu,target-i386,target-arm,libelff,common} 2) remove -Wa,-32 3) Changes prebuit toolchain path android-configure.h android/build/common.h 1) no longer force 32-bit build (because now prebuilts/tools/gcc-sdk/gcc can now handle 64-bit 2) set ANDROID_PREBUILTS to correctly locate ccache android/config/*/config-host.h 1) Detect HOST_X86_64 and HOST_X86_64/HOST_I386 Misc 64-bit porting clean-up 1) use %zx to print variable of type size_t in hex 2) use %zu to print variable of type size_t in dec 3) Initialize query_parm to NULL 4) use PRIu64 to replace PDUd64 5) use PRId64/PRIu64/PRIX64 to print 64-bit 6) drop PRUx64 because PRIx64 does the same 7) cast pointer arith to intptr_t before casting to int 8) fixed 1ULL<<63 Change-Id: Ife62a20063a6ec38d4a9b23977e840af1fce149a --- vl-android.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'vl-android.c') diff --git a/vl-android.c b/vl-android.c index 171d763..b7d4bb9 100644 --- a/vl-android.c +++ b/vl-android.c @@ -3576,10 +3576,10 @@ int main(int argc, char **argv, char **envp) uint64_t sysBytes = android_hw->disk_systemPartition_size; if (sysBytes == 0) { - PANIC("Invalid system partition size: %" PRUd64, sysBytes); + PANIC("Invalid system partition size: %" PRIu64, sysBytes); } - snprintf(tmp,sizeof(tmp),"system,size=0x%" PRUx64, sysBytes); + snprintf(tmp,sizeof(tmp),"system,size=0x%" PRIx64, sysBytes); if (sysImage && *sysImage) { if (filelock_create(sysImage) == NULL) { @@ -3611,10 +3611,10 @@ int main(int argc, char **argv, char **envp) uint64_t dataBytes = android_hw->disk_dataPartition_size; if (dataBytes == 0) { - PANIC("Invalid data partition size: %" PRUd64, dataBytes); + PANIC("Invalid data partition size: %" PRIu64, dataBytes); } - snprintf(tmp,sizeof(tmp),"userdata,size=0x%" PRUx64, dataBytes); + snprintf(tmp,sizeof(tmp),"userdata,size=0x%" PRIx64, dataBytes); if (dataImage && *dataImage) { if (filelock_create(dataImage) == NULL) { @@ -3834,7 +3834,7 @@ int main(int argc, char **argv, char **envp) const char* partPath = android_hw->disk_cachePartition_path; uint64_t partSize = android_hw->disk_cachePartition_size; - snprintf(tmp,sizeof(tmp),"cache,size=0x%" PRUx64, partSize); + snprintf(tmp,sizeof(tmp),"cache,size=0x%" PRIx64, partSize); if (partPath && *partPath && strcmp(partPath, "") != 0) { if (filelock_create(partPath) == NULL) { -- cgit v1.1