├── MODULE_LICENSE_APACHE2 ├── libnativehelper └── MODULE_LICENSE_APACHE2 ├── tests ├── 001-nop │ ├── expected.txt │ ├── run │ ├── build │ └── info.txt ├── 013-math2 │ └── expected.txt ├── 076-boolean-put │ └── expected.txt ├── 016-intern │ └── expected.txt ├── 014-math3 │ └── expected.txt ├── 021-string2 │ └── expected.txt ├── 056-const-string-jumbo │ ├── expected.txt │ └── info.txt ├── 026-access │ ├── expected.txt │ └── src │ │ └── otherpackage │ │ └── PublicAccess.java ├── 052-verifier-fun │ ├── expected.txt │ └── src │ │ ├── BlahFeature.java │ │ ├── Blah.java │ │ ├── BlahOne.java │ │ └── BlahTwo.java ├── 062-character-encodings │ ├── expected.txt │ └── info.txt ├── 086-null-super │ └── expected.txt ├── 066-mismatched-super │ ├── expected.txt │ ├── info.txt │ ├── src2 │ │ └── Defs.java │ └── src │ │ └── Base.java ├── 079-phantom │ └── info.txt ├── 022-interface │ ├── expected.txt │ └── src │ │ └── Iface2.java ├── 029-assert │ └── expected.txt ├── 059-finalizer-throw │ ├── expected.txt │ └── info.txt ├── 065-mismatched-implements │ ├── expected.txt │ ├── info.txt │ └── src │ │ ├── Defs.java │ │ └── Base.java ├── 073-mismatched-field │ └── expected.txt ├── 002-sleep │ ├── expected.txt │ └── info.txt ├── 004-annotations │ ├── info.txt │ └── src │ │ ├── android │ │ └── test │ │ │ └── anno │ │ │ ├── package-info.java │ │ │ ├── SomeClass.java │ │ │ └── INoted.java │ │ └── Main.java ├── 018-stack-overflow │ └── expected.txt ├── 025-access-controller │ └── expected.txt ├── 064-field-access │ └── expected.txt ├── 074-gc-thrash │ ├── expected.txt │ └── info.txt ├── 081-hot-exceptions │ └── expected.txt ├── 019-wrong-array-type │ └── expected.txt ├── 031-class-attributes │ └── src │ │ ├── OtherClass.java │ │ ├── otherpackage │ │ └── OtherPackageClass.java │ │ └── Main.java ├── 037-inherit │ └── expected.txt ├── 072-precise-gc │ ├── info.txt │ └── expected.txt ├── 087-gc-after-link │ └── expected.txt ├── 003-omnibus-opcodes │ ├── info.txt │ ├── src │ │ └── UnresClass.java │ └── src2 │ │ └── UnresStuff.java ├── 048-server-socket │ └── expected.txt ├── 058-enum-order │ ├── info.txt │ └── expected.txt ├── 070-nio-buffer │ ├── info.txt │ └── expected.txt ├── 078-polymorphic-virtual │ ├── expected.txt │ └── info.txt ├── 071-dexfile │ ├── expected.txt │ └── info.txt ├── 024-illegal-access │ ├── expected.txt │ └── info.txt ├── 028-array-write │ └── expected.txt ├── 035-enum │ └── expected.txt ├── 075-verification-error │ └── info.txt ├── 080-oom-throw │ └── expected.txt ├── 084-class-init │ └── info.txt ├── 083-jit-regressions │ └── expected.txt ├── 006-count10 │ └── expected.txt ├── 061-out-of-memory │ ├── info.txt │ └── expected.txt ├── 067-preemptive-unpark │ ├── info.txt │ └── expected.txt ├── 069-field-type │ ├── expected.txt │ └── src │ │ └── Holder.java ├── 010-instance │ └── src │ │ ├── X.java │ │ └── Y.java ├── 011-array-copy │ ├── expected.txt │ └── src │ │ └── Iface2.java ├── 034-call-null │ └── expected.txt ├── 047-returns │ └── expected.txt ├── 055-enum-performance │ └── info.txt ├── 063-process-manager │ └── info.txt ├── 017-float │ └── expected.txt ├── 057-iteration-performance │ └── info.txt ├── 068-classloader │ └── src │ │ ├── Useless.java │ │ ├── SimpleBase.java │ │ ├── ICommon.java │ │ └── InaccessibleBase.java ├── 077-method-override │ └── info.txt ├── 084-old-style-inner-class │ └── info.txt ├── 042-new-instance │ ├── src │ │ └── otherpackage │ │ │ └── PackageAccess.java │ └── info.txt ├── 009-instanceof2 │ ├── expected.txt │ └── src │ │ └── Iface2.java ├── 039-join-main │ └── expected.txt ├── 008-instanceof │ ├── expected.txt │ └── src │ │ └── Iface2.java ├── 030-bad-finalizer │ └── info.txt ├── 032-concrete-sub │ └── expected.txt ├── 038-inner-null │ └── expected.txt ├── 053-wait-some │ └── expected.txt └── 049-show-object │ └── expected.txt ├── dx ├── tests │ ├── 029-unit-Bits │ │ ├── expected.txt │ │ └── info.txt │ ├── 033-unit-IntList │ │ ├── expected.txt │ │ └── info.txt │ ├── 077-dex-code-alignment │ │ └── expected.txt │ ├── 001-nop │ │ ├── expected.txt │ │ └── info.txt │ ├── 035-dex-instance-var │ │ └── expected.txt │ ├── 036-dex-static-var │ │ └── expected.txt │ ├── 039-dex-static-method │ │ └── expected.txt │ ├── 040-dex-constructor │ │ └── expected.txt │ ├── 042-dex-ignore-result │ │ └── expected.txt │ ├── 089-dex-define-object │ │ └── expected.txt │ ├── 037-dex-static-final-var │ │ └── expected.txt │ ├── 038-dex-instance-method │ │ └── expected.txt │ ├── 041-dex-abstract-method │ │ └── expected.txt │ ├── 110-dex-preserve-this │ │ └── expected.txt │ ├── 113-old-style-inner-class │ │ └── expected.txt │ ├── 097-dex-branch-offset-zero │ │ └── expected.txt │ ├── 002-minimal-valid │ │ └── info.txt │ ├── 085-dex-jsr-ret │ │ └── info.txt │ ├── 112-dex-return-jsr-result │ │ └── expected.txt │ ├── 043-dex-two-classes │ │ └── expected.txt │ ├── 099-dex-core-library-error │ │ ├── expected.txt │ │ ├── Blort.java │ │ ├── Muffins.java │ │ ├── Zorch.java │ │ └── info.txt │ ├── 082-dex-throws-list-sharing │ │ └── expected.txt │ ├── 103-verify-branch-ops │ │ └── info.txt │ ├── 105-verify-load-store-ops │ │ └── info.txt │ ├── 106-verify-object-ops │ │ └── info.txt │ ├── 098-dex-jsr-ret-throw │ │ └── ViewDebug$ViewServer.class │ ├── 107-verify-stack-ops │ │ └── info.txt │ ├── 030-minimal-jasmin │ │ ├── info.txt │ │ └── expected.txt │ ├── 104-verify-return-ops │ │ └── info.txt │ ├── 100-local-mismatch │ │ └── info.txt │ ├── 101-verify-wide-math │ │ └── info.txt │ ├── 102-verify-nonwide-math │ │ └── info.txt │ └── 096-dex-giant-catch │ │ └── expected.txt ├── etc │ ├── manifest.txt │ └── jasmin.jar ├── src │ ├── junit │ │ └── runner │ │ │ ├── logo.gif │ │ │ └── smalllogo.gif │ └── com │ │ └── android │ │ └── dx │ │ ├── util │ │ └── package.html │ │ └── rop │ │ └── code │ │ └── package.html └── README.txt ├── tools ├── Android.mk ├── dexdeps │ └── etc │ │ └── manifest.txt └── dmtracedump │ └── tests │ └── filters │ ├── testWaitingPairCrossThreadTrace │ ├── testWaitingSoloCrossThreadTrace │ ├── testWaitingPairSingleThreadTrace │ ├── testWaitingSoloSingleThreadTrace │ ├── testFilters │ ├── testWaitingDisjointCrossThreadDiffFilterDiffKeysTrace │ ├── testWaitingDisjointCrossThreadDiffFilterSameKeysTrace │ ├── testWaitingDisjointCrossThreadSameFilterDiffKeysTrace │ ├── testWaitingDisjointCrossThreadSameFilterSameKeysTrace │ ├── testWaitingDisjointSingleThreadDiffFilterDiffKeysTrace │ ├── testWaitingDisjointSingleThreadDiffFilterSameKeysTrace │ ├── testWaitingDisjointSingleThreadSameFilterDiffKeysTrace │ ├── testWaitingDisjointSingleThreadSameFilterSameKeysTrace │ ├── testWaitingSoloSingleThread │ ├── testWaitingPairSingleThread │ ├── testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysTrace │ ├── testWaitingNestedOverlapCrossThreadDiffFilterSameKeysTrace │ ├── testWaitingNestedOverlapCrossThreadSameFilterDiffKeysTrace │ ├── testWaitingNestedOverlapCrossThreadSameFilterSameKeysTrace │ ├── testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysTrace │ ├── testWaitingNestedOverlapSingleThreadDiffFilterSameKeysTrace │ ├── testWaitingNestedOverlapSingleThreadSameFilterDiffKeysTrace │ ├── testWaitingNestedOverlapSingleThreadSameFilterSameKeysTrace │ ├── testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysTrace │ ├── testWaitingPartialOverlapCrossThreadDiffFilterSameKeysTrace │ ├── testWaitingPartialOverlapCrossThreadSameFilterDiffKeysTrace │ └── testWaitingPartialOverlapCrossThreadSameFilterSameKeysTrace ├── vm ├── mterp │ ├── x86 │ │ ├── unused.S │ │ ├── OP_BREAKPOINT.S │ │ ├── OP_UNUSED_3E.S │ │ ├── OP_UNUSED_3F.S │ │ ├── OP_UNUSED_40.S │ │ ├── OP_UNUSED_41.S │ │ ├── OP_UNUSED_42.S │ │ ├── OP_UNUSED_43.S │ │ ├── OP_UNUSED_73.S │ │ ├── OP_UNUSED_79.S │ │ ├── OP_UNUSED_7A.S │ │ ├── OP_UNUSED_E3.S │ │ ├── OP_UNUSED_E4.S │ │ ├── OP_UNUSED_E5.S │ │ ├── OP_UNUSED_E6.S │ │ ├── OP_UNUSED_E7.S │ │ ├── OP_UNUSED_F1.S │ │ ├── OP_UNUSED_FC.S │ │ ├── OP_UNUSED_FD.S │ │ ├── OP_UNUSED_FE.S │ │ ├── OP_UNUSED_FF.S │ │ ├── OP_EXECUTE_INLINE_RANGE.S │ │ ├── OP_AGET_OBJECT.S │ │ ├── OP_IGET_OBJECT.S │ │ ├── OP_IPUT_VOLATILE.S │ │ ├── OP_MOVE_OBJECT.S │ │ ├── OP_SGET_BOOLEAN.S │ │ ├── OP_SGET_BYTE.S │ │ ├── OP_SGET_CHAR.S │ │ ├── OP_SGET_OBJECT.S │ │ ├── OP_SGET_SHORT.S │ │ ├── OP_SGET_VOLATILE.S │ │ ├── OP_SPUT_BOOLEAN.S │ │ ├── OP_SPUT_BYTE.S │ │ ├── OP_SPUT_CHAR.S │ │ ├── OP_SPUT_SHORT.S │ │ ├── OP_SPUT_VOLATILE.S │ │ ├── OP_MOVE_OBJECT_16.S │ │ ├── OP_RETURN_OBJECT.S │ │ ├── OP_IF_EQ.S │ │ ├── OP_IF_EQZ.S │ │ ├── OP_IF_GE.S │ │ ├── OP_IF_GEZ.S │ │ ├── OP_IF_GT.S │ │ ├── OP_IF_GTZ.S │ │ ├── OP_IF_LE.S │ │ ├── OP_IF_LEZ.S │ │ ├── OP_IF_LT.S │ │ ├── OP_IF_LTZ.S │ │ ├── OP_IF_NE.S │ │ ├── OP_IF_NEZ.S │ │ ├── OP_IGET_OBJECT_QUICK.S │ │ ├── OP_SGET_OBJECT_VOLATILE.S │ │ ├── OP_IPUT_OBJECT_VOLATILE.S │ │ ├── OP_MOVE_OBJECT_FROM16.S │ │ ├── OP_MOVE_RESULT_OBJECT.S │ │ ├── OP_NEG_INT.S │ │ ├── OP_NOT_INT.S │ │ ├── OP_RETURN_VOID.S │ │ ├── OP_SPUT_OBJECT_VOLATILE.S │ │ ├── OP_INT_TO_BYTE.S │ │ ├── OP_INT_TO_CHAR.S │ │ ├── OP_INT_TO_SHORT.S │ │ ├── OP_SHL_INT.S │ │ ├── OP_SHR_INT.S │ │ ├── OP_USHR_INT.S │ │ ├── OP_ADD_INT.S │ │ ├── OP_ADD_INT_LIT16.S │ │ ├── OP_ADD_INT_LIT8.S │ │ ├── OP_AGET_BYTE.S │ │ ├── OP_AGET_CHAR.S │ │ ├── OP_AGET_SHORT.S │ │ ├── OP_AND_INT.S │ │ ├── OP_AND_INT_LIT16.S │ │ ├── OP_AND_INT_LIT8.S │ │ ├── OP_INT_TO_FLOAT.S │ │ ├── OP_NOP.S │ │ ├── OP_OR_INT.S │ │ ├── OP_OR_INT_LIT8.S │ │ ├── OP_REM_INT.S │ │ ├── OP_SHL_INT_LIT8.S │ │ ├── OP_SHR_INT_LIT8.S │ │ ├── OP_SUB_INT.S │ │ ├── OP_XOR_INT.S │ │ ├── OP_XOR_INT_LIT8.S │ │ ├── OP_AGET_BOOLEAN.S │ │ ├── OP_CMPG_FLOAT.S │ │ ├── OP_DIV_INT.S │ │ ├── OP_DOUBLE_TO_FLOAT.S │ │ ├── OP_DOUBLE_TO_INT.S │ │ ├── OP_DOUBLE_TO_LONG.S │ │ ├── OP_FLOAT_TO_DOUBLE.S │ │ ├── OP_FLOAT_TO_INT.S │ │ ├── OP_FLOAT_TO_LONG.S │ │ ├── OP_IGET_BOOLEAN.S │ │ ├── OP_INT_TO_DOUBLE.S │ │ ├── OP_LONG_TO_DOUBLE.S │ │ ├── OP_LONG_TO_FLOAT.S │ │ ├── OP_OR_INT_LIT16.S │ │ ├── OP_REM_INT_LIT8.S │ │ ├── OP_SHL_INT_2ADDR.S │ │ ├── OP_SHR_INT_2ADDR.S │ │ ├── OP_USHR_INT_2ADDR.S │ │ ├── OP_USHR_INT_LIT8.S │ │ ├── OP_XOR_INT_LIT16.S │ │ ├── OP_CMPL_DOUBLE.S │ │ ├── OP_CMPL_FLOAT.S │ │ ├── OP_FILLED_NEW_ARRAY_RANGE.S │ │ ├── OP_OR_INT_2ADDR.S │ │ ├── OP_REM_INT_2ADDR.S │ │ ├── OP_REM_INT_LIT16.S │ │ ├── OP_REM_LONG.S │ │ ├── OP_ADD_DOUBLE.S │ │ ├── OP_ADD_FLOAT.S │ │ ├── OP_ADD_INT_2ADDR.S │ │ ├── OP_AND_INT_2ADDR.S │ │ ├── OP_APUT_BOOLEAN.S │ │ ├── OP_APUT_BYTE.S │ │ ├── OP_APUT_CHAR.S │ │ ├── OP_APUT_SHORT.S │ │ ├── OP_DIV_DOUBLE.S │ │ ├── OP_DIV_FLOAT.S │ │ ├── OP_DIV_INT_LIT8.S │ │ ├── OP_IPUT_CHAR.S │ │ ├── OP_IPUT_SHORT.S │ │ ├── OP_MUL_DOUBLE.S │ │ ├── OP_MUL_FLOAT.S │ │ ├── OP_NEG_DOUBLE.S │ │ ├── OP_NEG_FLOAT.S │ │ ├── OP_RSUB_INT.S │ │ ├── OP_SUB_DOUBLE.S │ │ ├── OP_SUB_FLOAT.S │ │ ├── OP_SUB_INT_2ADDR.S │ │ ├── OP_XOR_INT_2ADDR.S │ │ ├── OP_DIV_INT_2ADDR.S │ │ ├── OP_DIV_INT_LIT16.S │ │ ├── OP_IGET_VOLATILE.S │ │ ├── OP_INVOKE_SUPER_RANGE.S │ │ ├── OP_IPUT_BOOLEAN.S │ │ ├── OP_IPUT_BYTE.S │ │ ├── OP_REM_LONG_2ADDR.S │ │ ├── OP_RSUB_INT_LIT8.S │ │ ├── OP_SPARSE_SWITCH.S │ │ ├── OP_ADD_FLOAT_2ADDR.S │ │ ├── OP_DIV_FLOAT_2ADDR.S │ │ ├── OP_IGET_OBJECT_VOLATILE.S │ │ ├── OP_INVOKE_DIRECT_RANGE.S │ │ ├── OP_INVOKE_STATIC_RANGE.S │ │ ├── OP_INVOKE_VIRTUAL_RANGE.S │ │ ├── OP_MUL_FLOAT_2ADDR.S │ │ ├── OP_SUB_FLOAT_2ADDR.S │ │ ├── OP_ADD_DOUBLE_2ADDR.S │ │ ├── OP_DIV_DOUBLE_2ADDR.S │ │ ├── OP_INVOKE_INTERFACE_RANGE.S │ │ ├── OP_MUL_DOUBLE_2ADDR.S │ │ ├── OP_SUB_DOUBLE_2ADDR.S │ │ ├── OP_INVOKE_SUPER_QUICK_RANGE.S │ │ ├── OP_OR_LONG.S │ │ ├── OP_ADD_LONG.S │ │ ├── OP_AND_LONG.S │ │ ├── OP_INVOKE_VIRTUAL_QUICK_RANGE.S │ │ ├── OP_SUB_LONG.S │ │ ├── OP_XOR_LONG.S │ │ ├── OP_IGET_BYTE.S │ │ ├── OP_IGET_CHAR.S │ │ ├── OP_IGET_SHORT.S │ │ ├── OP_LONG_TO_INT.S │ │ ├── OP_OR_LONG_2ADDR.S │ │ ├── OP_ADD_LONG_2ADDR.S │ │ ├── OP_AND_LONG_2ADDR.S │ │ ├── OP_SUB_LONG_2ADDR.S │ │ ├── OP_XOR_LONG_2ADDR.S │ │ └── OP_INVOKE_DIRECT_EMPTY.S │ ├── armv5te │ │ ├── unused.S │ │ ├── OP_UNUSED_3E.S │ │ ├── OP_UNUSED_3F.S │ │ ├── OP_UNUSED_40.S │ │ ├── OP_UNUSED_41.S │ │ ├── OP_UNUSED_42.S │ │ ├── OP_UNUSED_43.S │ │ ├── OP_UNUSED_73.S │ │ ├── OP_UNUSED_79.S │ │ ├── OP_UNUSED_7A.S │ │ ├── OP_UNUSED_F1.S │ │ ├── OP_UNUSED_FF.S │ │ ├── OP_BREAKPOINT.S │ │ ├── OP_SGET_BYTE.S │ │ ├── OP_SGET_CHAR.S │ │ ├── OP_SGET_SHORT.S │ │ ├── OP_SPUT_BYTE.S │ │ ├── OP_SPUT_CHAR.S │ │ ├── OP_SPUT_SHORT.S │ │ ├── OP_AGET_OBJECT.S │ │ ├── OP_IGET_OBJECT.S │ │ ├── OP_MOVE_OBJECT.S │ │ ├── OP_RETURN_OBJECT.S │ │ ├── OP_SGET_BOOLEAN.S │ │ ├── OP_SGET_OBJECT.S │ │ ├── OP_SPUT_BOOLEAN.S │ │ ├── OP_MOVE_OBJECT_16.S │ │ ├── OP_RETURN_VOID.S │ │ ├── OP_IF_EQ.S │ │ ├── OP_IF_EQZ.S │ │ ├── OP_IF_GE.S │ │ ├── OP_IF_GEZ.S │ │ ├── OP_IF_GT.S │ │ ├── OP_IF_GTZ.S │ │ ├── OP_IF_LE.S │ │ ├── OP_IF_LEZ.S │ │ ├── OP_IF_LT.S │ │ ├── OP_IF_LTZ.S │ │ ├── OP_IF_NE.S │ │ ├── OP_IF_NEZ.S │ │ ├── OP_IGET_OBJECT_QUICK.S │ │ ├── OP_MOVE_OBJECT_FROM16.S │ │ ├── OP_MOVE_RESULT_OBJECT.S │ │ ├── OP_IGET_VOLATILE.S │ │ ├── OP_IPUT_VOLATILE.S │ │ ├── OP_NEG_INT.S │ │ ├── OP_NOT_INT.S │ │ ├── OP_OR_INT.S │ │ ├── OP_SGET_VOLATILE.S │ │ ├── OP_SPUT_VOLATILE.S │ │ ├── OP_ADD_FLOAT.S │ │ ├── OP_ADD_INT.S │ │ ├── OP_AGET_CHAR.S │ │ ├── OP_AND_INT.S │ │ ├── OP_DIV_FLOAT.S │ │ ├── OP_IGET_WIDE_VOLATILE.S │ │ ├── OP_IPUT_WIDE_VOLATILE.S │ │ ├── OP_MUL_FLOAT.S │ │ ├── OP_SGET_WIDE_VOLATILE.S │ │ ├── OP_SPUT_WIDE_VOLATILE.S │ │ ├── OP_SUB_FLOAT.S │ │ ├── OP_SUB_INT.S │ │ ├── OP_XOR_INT.S │ │ ├── OP_ADD_DOUBLE.S │ │ ├── OP_ADD_INT_LIT8.S │ │ ├── OP_AGET_BOOLEAN.S │ │ ├── OP_AGET_BYTE.S │ │ ├── OP_AGET_SHORT.S │ │ ├── OP_AND_INT_LIT8.S │ │ ├── OP_APUT_BOOLEAN.S │ │ ├── OP_APUT_BYTE.S │ │ ├── OP_APUT_CHAR.S │ │ ├── OP_APUT_SHORT.S │ │ ├── OP_DIV_DOUBLE.S │ │ ├── OP_IGET_OBJECT_VOLATILE.S │ │ ├── OP_INT_TO_FLOAT.S │ │ ├── OP_MUL_DOUBLE.S │ │ ├── OP_OR_INT_LIT8.S │ │ ├── OP_SGET_OBJECT_VOLATILE.S │ │ ├── OP_SUB_DOUBLE.S │ │ ├── OP_XOR_INT_LIT8.S │ │ ├── OP_ADD_INT_2ADDR.S │ │ ├── OP_ADD_INT_LIT16.S │ │ ├── OP_AND_INT_2ADDR.S │ │ ├── OP_AND_INT_LIT16.S │ │ ├── OP_CMPG_DOUBLE.S │ │ ├── OP_CMPG_FLOAT.S │ │ ├── OP_FLOAT_TO_DOUBLE.S │ │ ├── OP_INT_TO_DOUBLE.S │ │ ├── OP_INT_TO_LONG.S │ │ ├── OP_INVOKE_STATIC_RANGE.S │ │ ├── OP_IPUT_OBJECT_VOLATILE.S │ │ ├── OP_LONG_TO_DOUBLE.S │ │ ├── OP_LONG_TO_FLOAT.S │ │ ├── OP_NEG_FLOAT.S │ │ ├── OP_OR_INT_2ADDR.S │ │ ├── OP_OR_INT_LIT16.S │ │ ├── OP_RSUB_INT_LIT8.S │ │ ├── OP_SPUT_OBJECT_VOLATILE.S │ │ ├── OP_SUB_INT_2ADDR.S │ │ ├── OP_XOR_INT_2ADDR.S │ │ ├── OP_XOR_INT_LIT16.S │ │ ├── OP_ADD_FLOAT_2ADDR.S │ │ ├── OP_DIV_FLOAT_2ADDR.S │ │ ├── OP_DIV_INT.S │ │ ├── OP_DOUBLE_TO_FLOAT.S │ │ ├── OP_FILLED_NEW_ARRAY_RANGE.S │ │ ├── OP_MUL_FLOAT_2ADDR.S │ │ ├── OP_NEG_DOUBLE.S │ │ ├── OP_SUB_FLOAT_2ADDR.S │ │ ├── OP_ADD_DOUBLE_2ADDR.S │ │ ├── OP_DIV_DOUBLE_2ADDR.S │ │ ├── OP_DIV_INT_LIT8.S │ │ ├── OP_MUL_DOUBLE_2ADDR.S │ │ ├── OP_SUB_DOUBLE_2ADDR.S │ │ ├── OP_DIV_INT_2ADDR.S │ │ ├── OP_DIV_INT_LIT16.S │ │ ├── OP_DIV_LONG.S │ │ ├── OP_INVOKE_DIRECT_RANGE.S │ │ ├── OP_INVOKE_SUPER_RANGE.S │ │ ├── OP_NOT_LONG.S │ │ ├── OP_SPARSE_SWITCH.S │ │ ├── OP_INVOKE_VIRTUAL_RANGE.S │ │ ├── OP_ADD_LONG.S │ │ ├── OP_AND_LONG.S │ │ ├── OP_DIV_LONG_2ADDR.S │ │ ├── OP_INVOKE_INTERFACE_RANGE.S │ │ ├── OP_INVOKE_SUPER_QUICK_RANGE.S │ │ ├── OP_NEG_LONG.S │ │ ├── OP_OR_LONG.S │ │ ├── OP_SHL_INT.S │ │ ├── OP_SHR_INT.S │ │ ├── OP_SUB_LONG.S │ │ ├── OP_USHR_INT.S │ │ ├── OP_XOR_LONG.S │ │ ├── OP_INVOKE_VIRTUAL_QUICK_RANGE.S │ │ ├── OP_ADD_LONG_2ADDR.S │ │ ├── OP_AND_LONG_2ADDR.S │ │ ├── OP_INT_TO_BYTE.S │ │ ├── OP_INT_TO_CHAR.S │ │ ├── OP_INT_TO_SHORT.S │ │ ├── OP_OR_LONG_2ADDR.S │ │ ├── OP_SHL_INT_2ADDR.S │ │ ├── OP_SHL_INT_LIT8.S │ │ ├── OP_SHR_INT_2ADDR.S │ │ ├── OP_SHR_INT_LIT8.S │ │ ├── OP_SUB_LONG_2ADDR.S │ │ ├── OP_USHR_INT_LIT8.S │ │ ├── OP_XOR_LONG_2ADDR.S │ │ ├── OP_LONG_TO_INT.S │ │ ├── OP_USHR_INT_2ADDR.S │ │ ├── OP_MUL_INT.S │ │ ├── OP_IPUT_BYTE.S │ │ ├── OP_IPUT_CHAR.S │ │ ├── OP_REM_FLOAT.S │ │ ├── OP_IGET_BOOLEAN.S │ │ ├── OP_IPUT_BOOLEAN.S │ │ ├── OP_IPUT_SHORT.S │ │ ├── OP_MUL_INT_2ADDR.S │ │ ├── OP_MUL_INT_LIT16.S │ │ ├── OP_MUL_INT_LIT8.S │ │ ├── OP_REM_DOUBLE.S │ │ ├── OP_REM_FLOAT_2ADDR.S │ │ ├── OP_RSUB_INT.S │ │ ├── OP_REM_DOUBLE_2ADDR.S │ │ ├── OP_REM_INT.S │ │ ├── OP_REM_INT_2ADDR.S │ │ ├── OP_REM_INT_LIT16.S │ │ ├── OP_REM_INT_LIT8.S │ │ ├── OP_IGET_BYTE.S │ │ └── OP_IGET_CHAR.S │ ├── c │ │ ├── OP_MOVE_OBJECT.c │ │ ├── OP_RETURN_OBJECT.c │ │ ├── OP_MOVE_OBJECT_16.c │ │ ├── OP_MOVE_OBJECT_FROM16.c │ │ ├── OP_MOVE_RESULT_OBJECT.c │ │ ├── OP_UNUSED_3E.c │ │ ├── OP_UNUSED_3F.c │ │ ├── OP_UNUSED_40.c │ │ ├── OP_UNUSED_41.c │ │ ├── OP_UNUSED_42.c │ │ ├── OP_UNUSED_43.c │ │ ├── OP_UNUSED_73.c │ │ ├── OP_UNUSED_79.c │ │ ├── OP_UNUSED_7A.c │ │ ├── OP_UNUSED_F1.c │ │ ├── OP_AGET.c │ │ ├── OP_APUT.c │ │ ├── OP_IF_EQ.c │ │ ├── OP_IF_GE.c │ │ ├── OP_IF_GT.c │ │ ├── OP_IF_LE.c │ │ ├── OP_IF_LT.c │ │ ├── OP_IF_NE.c │ │ ├── OP_IF_EQZ.c │ │ ├── OP_IF_GEZ.c │ │ ├── OP_IF_GTZ.c │ │ ├── OP_IF_LEZ.c │ │ ├── OP_IF_LTZ.c │ │ ├── OP_IF_NEZ.c │ │ ├── OP_NOP.c │ │ ├── OP_OR_INT.c │ │ ├── OP_ADD_FLOAT.c │ │ ├── OP_ADD_INT.c │ │ ├── OP_ADD_LONG.c │ │ ├── OP_AND_INT.c │ │ ├── OP_AND_LONG.c │ │ ├── OP_DIV_FLOAT.c │ │ ├── OP_DIV_INT.c │ │ ├── OP_DIV_LONG.c │ │ ├── OP_MUL_FLOAT.c │ │ ├── OP_MUL_INT.c │ │ ├── OP_MUL_LONG.c │ │ ├── OP_NEG_INT.c │ │ ├── OP_OR_LONG.c │ │ ├── OP_REM_INT.c │ │ ├── OP_REM_LONG.c │ │ ├── OP_SUB_FLOAT.c │ │ ├── OP_SUB_INT.c │ │ ├── OP_SUB_LONG.c │ │ ├── OP_XOR_INT.c │ │ ├── OP_XOR_LONG.c │ │ ├── OP_ADD_DOUBLE.c │ │ ├── OP_AGET_BYTE.c │ │ ├── OP_AGET_CHAR.c │ │ ├── OP_AGET_SHORT.c │ │ ├── OP_APUT_BYTE.c │ │ ├── OP_APUT_CHAR.c │ │ ├── OP_APUT_SHORT.c │ │ ├── OP_DIV_DOUBLE.c │ │ ├── OP_IGET.c │ │ ├── OP_IPUT.c │ │ ├── OP_MUL_DOUBLE.c │ │ ├── OP_NEG_LONG.c │ │ ├── OP_SGET.c │ │ ├── OP_SHL_INT.c │ │ ├── OP_SHL_LONG.c │ │ ├── OP_SHR_INT.c │ │ ├── OP_SHR_LONG.c │ │ ├── OP_SPUT.c │ │ ├── OP_SUB_DOUBLE.c │ │ ├── OP_USHR_INT.c │ │ ├── OP_AGET_BOOLEAN.c │ │ ├── OP_AGET_OBJECT.c │ │ ├── OP_AGET_WIDE.c │ │ ├── OP_APUT_BOOLEAN.c │ │ ├── OP_APUT_WIDE.c │ │ ├── OP_CMP_LONG.c │ │ ├── OP_IGET_BYTE.c │ │ ├── OP_IGET_CHAR.c │ │ ├── OP_IGET_SHORT.c │ │ ├── OP_IPUT_BYTE.c │ │ ├── OP_IPUT_CHAR.c │ │ ├── OP_IPUT_SHORT.c │ │ ├── OP_NEG_FLOAT.c │ │ ├── OP_NOT_INT.c │ │ ├── OP_SGET_BYTE.c │ │ ├── OP_SGET_CHAR.c │ │ ├── OP_SGET_SHORT.c │ │ ├── OP_SPUT_BYTE.c │ │ ├── OP_SPUT_CHAR.c │ │ ├── OP_SPUT_SHORT.c │ │ ├── OP_USHR_LONG.c │ │ ├── OP_ADD_INT_2ADDR.c │ │ ├── OP_ADD_INT_LIT16.c │ │ ├── OP_ADD_INT_LIT8.c │ │ ├── OP_AND_INT_2ADDR.c │ │ ├── OP_AND_INT_LIT16.c │ │ ├── OP_AND_INT_LIT8.c │ │ ├── OP_DIV_INT_2ADDR.c │ │ ├── OP_DIV_INT_LIT16.c │ │ ├── OP_DIV_INT_LIT8.c │ │ ├── OP_IGET_BOOLEAN.c │ │ ├── OP_IGET_QUICK.c │ │ ├── OP_INT_TO_BYTE.c │ │ ├── OP_INT_TO_CHAR.c │ │ ├── OP_IPUT_BOOLEAN.c │ │ ├── OP_IPUT_QUICK.c │ │ ├── OP_MUL_INT_2ADDR.c │ │ ├── OP_MUL_INT_LIT16.c │ │ ├── OP_MUL_INT_LIT8.c │ │ ├── OP_NEG_DOUBLE.c │ │ ├── OP_OR_INT_2ADDR.c │ │ ├── OP_OR_INT_LIT16.c │ │ ├── OP_OR_INT_LIT8.c │ │ ├── OP_OR_LONG_2ADDR.c │ │ ├── OP_REM_INT_2ADDR.c │ │ ├── OP_REM_INT_LIT16.c │ │ ├── OP_REM_INT_LIT8.c │ │ ├── OP_SGET_BOOLEAN.c │ │ ├── OP_SPUT_BOOLEAN.c │ │ ├── OP_SUB_INT_2ADDR.c │ │ ├── OP_XOR_INT_2ADDR.c │ │ ├── OP_XOR_INT_LIT16.c │ │ ├── OP_XOR_INT_LIT8.c │ │ ├── OP_ADD_DOUBLE_2ADDR.c │ │ ├── OP_ADD_FLOAT_2ADDR.c │ │ ├── OP_ADD_LONG_2ADDR.c │ │ ├── OP_AND_LONG_2ADDR.c │ │ ├── OP_CMPG_FLOAT.c │ │ ├── OP_CMPL_FLOAT.c │ │ ├── OP_DIV_DOUBLE_2ADDR.c │ │ ├── OP_DIV_FLOAT_2ADDR.c │ │ ├── OP_DIV_LONG_2ADDR.c │ │ ├── OP_IGET_WIDE.c │ │ ├── OP_IPUT_WIDE.c │ │ ├── OP_MUL_DOUBLE_2ADDR.c │ │ ├── OP_MUL_FLOAT_2ADDR.c │ │ ├── OP_MUL_LONG_2ADDR.c │ │ ├── OP_REM_LONG_2ADDR.c │ │ ├── OP_SGET_WIDE.c │ │ ├── OP_SHL_INT_2ADDR.c │ │ ├── OP_SHL_INT_LIT8.c │ │ ├── OP_SHR_INT_2ADDR.c │ │ ├── OP_SHR_INT_LIT8.c │ │ ├── OP_SPUT_WIDE.c │ │ ├── OP_SUB_DOUBLE_2ADDR.c │ │ ├── OP_SUB_FLOAT_2ADDR.c │ │ ├── OP_SUB_LONG_2ADDR.c │ │ ├── OP_XOR_LONG_2ADDR.c │ │ ├── OP_CMPG_DOUBLE.c │ │ ├── OP_CMPL_DOUBLE.c │ │ ├── OP_SHL_LONG_2ADDR.c │ │ ├── OP_SHR_LONG_2ADDR.c │ │ ├── OP_USHR_INT_2ADDR.c │ │ ├── OP_USHR_INT_LIT8.c │ │ ├── OP_IGET_OBJECT.c │ │ ├── OP_IGET_VOLATILE.c │ │ ├── OP_IGET_WIDE_QUICK.c │ │ ├── OP_INT_TO_FLOAT.c │ │ ├── OP_INT_TO_LONG.c │ │ ├── OP_IPUT_VOLATILE.c │ │ ├── OP_IPUT_WIDE_QUICK.c │ │ ├── OP_LONG_TO_INT.c │ │ ├── OP_NOT_LONG.c │ │ ├── OP_SGET_OBJECT.c │ │ ├── OP_SGET_VOLATILE.c │ │ ├── OP_SPUT_OBJECT.c │ │ ├── OP_SPUT_VOLATILE.c │ │ ├── OP_USHR_LONG_2ADDR.c │ │ ├── OP_INT_TO_DOUBLE.c │ │ ├── OP_LONG_TO_FLOAT.c │ │ ├── OP_DOUBLE_TO_FLOAT.c │ │ ├── OP_FLOAT_TO_DOUBLE.c │ │ ├── OP_IGET_OBJECT_QUICK.c │ │ ├── OP_INT_TO_SHORT.c │ │ ├── OP_IPUT_OBJECT_QUICK.c │ │ ├── OP_LONG_TO_DOUBLE.c │ │ ├── OP_IGET_WIDE_VOLATILE.c │ │ ├── OP_IPUT_WIDE_VOLATILE.c │ │ ├── OP_SGET_WIDE_VOLATILE.c │ │ ├── OP_SPUT_WIDE_VOLATILE.c │ │ ├── OP_FLOAT_TO_INT.c │ │ ├── OP_DOUBLE_TO_INT.c │ │ ├── OP_FLOAT_TO_LONG.c │ │ ├── OP_DOUBLE_TO_LONG.c │ │ ├── OP_IGET_OBJECT_VOLATILE.c │ │ ├── OP_IPUT_OBJECT_VOLATILE.c │ │ ├── OP_SGET_OBJECT_VOLATILE.c │ │ ├── OP_SPUT_OBJECT_VOLATILE.c │ │ ├── OP_INVOKE_DIRECT.c │ │ ├── OP_INVOKE_STATIC.c │ │ ├── OP_INVOKE_SUPER.c │ │ ├── OP_INVOKE_SUPER_RANGE.c │ │ ├── OP_INVOKE_VIRTUAL.c │ │ ├── OP_FILLED_NEW_ARRAY.c │ │ ├── OP_INVOKE_DIRECT_RANGE.c │ │ ├── OP_INVOKE_INTERFACE.c │ │ ├── OP_INVOKE_STATIC_RANGE.c │ │ ├── OP_INVOKE_SUPER_QUICK.c │ │ ├── OP_INVOKE_VIRTUAL_RANGE.c │ │ ├── OP_FILLED_NEW_ARRAY_RANGE.c │ │ ├── OP_INVOKE_INTERFACE_RANGE.c │ │ ├── OP_INVOKE_VIRTUAL_QUICK.c │ │ ├── OP_INVOKE_SUPER_QUICK_RANGE.c │ │ ├── OP_INVOKE_VIRTUAL_QUICK_RANGE.c │ │ └── OP_RETURN_VOID.c │ ├── x86-atom │ │ └── OP_BREAKPOINT.S │ ├── armv6t2 │ │ ├── OP_IF_EQ.S │ │ ├── OP_IF_GE.S │ │ ├── OP_IF_GT.S │ │ ├── OP_IF_LE.S │ │ ├── OP_IF_LT.S │ │ ├── OP_IF_NE.S │ │ ├── OP_INT_TO_BYTE.S │ │ ├── OP_INT_TO_CHAR.S │ │ ├── OP_NEG_INT.S │ │ ├── OP_NOT_INT.S │ │ ├── OP_INT_TO_SHORT.S │ │ ├── OP_INT_TO_FLOAT.S │ │ ├── OP_ADD_INT_2ADDR.S │ │ ├── OP_ADD_INT_LIT16.S │ │ ├── OP_AND_INT_2ADDR.S │ │ ├── OP_AND_INT_LIT16.S │ │ ├── OP_FLOAT_TO_DOUBLE.S │ │ ├── OP_INT_TO_DOUBLE.S │ │ ├── OP_INT_TO_LONG.S │ │ ├── OP_LONG_TO_DOUBLE.S │ │ ├── OP_LONG_TO_FLOAT.S │ │ ├── OP_NEG_FLOAT.S │ │ ├── OP_OR_INT_2ADDR.S │ │ ├── OP_OR_INT_LIT16.S │ │ ├── OP_SUB_INT_2ADDR.S │ │ ├── OP_XOR_INT_2ADDR.S │ │ ├── OP_XOR_INT_LIT16.S │ │ ├── OP_ADD_FLOAT_2ADDR.S │ │ ├── OP_DIV_FLOAT_2ADDR.S │ │ ├── OP_DOUBLE_TO_FLOAT.S │ │ ├── OP_MUL_FLOAT_2ADDR.S │ │ ├── OP_NEG_DOUBLE.S │ │ ├── OP_SUB_FLOAT_2ADDR.S │ │ ├── OP_ADD_DOUBLE_2ADDR.S │ │ ├── OP_DIV_DOUBLE_2ADDR.S │ │ ├── OP_MUL_DOUBLE_2ADDR.S │ │ ├── OP_SUB_DOUBLE_2ADDR.S │ │ ├── OP_DIV_INT_2ADDR.S │ │ ├── OP_DIV_INT_LIT16.S │ │ ├── OP_NOT_LONG.S │ │ ├── OP_DIV_LONG_2ADDR.S │ │ ├── OP_NEG_LONG.S │ │ ├── OP_ADD_LONG_2ADDR.S │ │ ├── OP_AND_LONG_2ADDR.S │ │ ├── OP_OR_LONG_2ADDR.S │ │ ├── OP_SHL_INT_2ADDR.S │ │ ├── OP_SHR_INT_2ADDR.S │ │ ├── OP_SUB_LONG_2ADDR.S │ │ ├── OP_XOR_LONG_2ADDR.S │ │ ├── OP_USHR_INT_2ADDR.S │ │ ├── OP_MUL_INT_2ADDR.S │ │ ├── OP_MUL_INT_LIT16.S │ │ ├── OP_REM_FLOAT_2ADDR.S │ │ ├── OP_RSUB_INT.S │ │ ├── OP_REM_DOUBLE_2ADDR.S │ │ ├── OP_REM_INT_2ADDR.S │ │ └── OP_REM_INT_LIT16.S │ ├── armv6 │ │ ├── OP_INT_TO_BYTE.S │ │ ├── OP_INT_TO_CHAR.S │ │ └── OP_INT_TO_SHORT.S │ ├── arm-vfp │ │ ├── OP_ADD_FLOAT.S │ │ ├── OP_DIV_FLOAT.S │ │ ├── OP_FLOAT_TO_INT.S │ │ ├── OP_INT_TO_FLOAT.S │ │ ├── OP_MUL_FLOAT.S │ │ ├── OP_SUB_FLOAT.S │ │ ├── OP_ADD_DOUBLE.S │ │ ├── OP_DIV_DOUBLE.S │ │ ├── OP_FLOAT_TO_DOUBLE.S │ │ ├── OP_INT_TO_DOUBLE.S │ │ ├── OP_MUL_DOUBLE.S │ │ ├── OP_SUB_DOUBLE.S │ │ ├── OP_ADD_FLOAT_2ADDR.S │ │ ├── OP_DIV_FLOAT_2ADDR.S │ │ ├── OP_DOUBLE_TO_FLOAT.S │ │ ├── OP_DOUBLE_TO_INT.S │ │ ├── OP_MUL_FLOAT_2ADDR.S │ │ ├── OP_SUB_FLOAT_2ADDR.S │ │ ├── OP_ADD_DOUBLE_2ADDR.S │ │ ├── OP_DIV_DOUBLE_2ADDR.S │ │ ├── OP_MUL_DOUBLE_2ADDR.S │ │ └── OP_SUB_DOUBLE_2ADDR.S │ ├── armv4t │ │ ├── OP_IGET_WIDE_VOLATILE.S │ │ ├── OP_IPUT_WIDE_VOLATILE.S │ │ ├── OP_SGET_WIDE_VOLATILE.S │ │ └── OP_SPUT_WIDE_VOLATILE.S │ └── cstubs │ │ └── enddefs.c ├── compiler │ └── template │ │ ├── README.txt │ │ ├── armv5te │ │ ├── TEMPLATE_CMPG_DOUBLE.S │ │ └── TEMPLATE_CMPG_FLOAT.S │ │ └── armv5te-vfp │ │ ├── TEMPLATE_ADD_FLOAT_VFP.S │ │ ├── TEMPLATE_DIV_FLOAT_VFP.S │ │ ├── TEMPLATE_FLOAT_TO_INT_VFP.S │ │ ├── TEMPLATE_INT_TO_FLOAT_VFP.S │ │ ├── TEMPLATE_MUL_FLOAT_VFP.S │ │ ├── TEMPLATE_SUB_FLOAT_VFP.S │ │ ├── TEMPLATE_ADD_DOUBLE_VFP.S │ │ ├── TEMPLATE_DIV_DOUBLE_VFP.S │ │ ├── TEMPLATE_FLOAT_TO_DOUBLE_VFP.S │ │ ├── TEMPLATE_INT_TO_DOUBLE_VFP.S │ │ ├── TEMPLATE_MUL_DOUBLE_VFP.S │ │ ├── TEMPLATE_SUB_DOUBLE_VFP.S │ │ ├── TEMPLATE_DOUBLE_TO_FLOAT_VFP.S │ │ └── TEMPLATE_DOUBLE_TO_INT_VFP.S └── interp │ └── README.txt └── hit └── samples └── android.hprof /MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libnativehelper/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/001-nop/expected.txt: -------------------------------------------------------------------------------- 1 | Blort. 2 | -------------------------------------------------------------------------------- /tests/013-math2/expected.txt: -------------------------------------------------------------------------------- 1 | a:32003 2 | -------------------------------------------------------------------------------- /tests/076-boolean-put/expected.txt: -------------------------------------------------------------------------------- 1 | Done 2 | -------------------------------------------------------------------------------- /dx/tests/029-unit-Bits/expected.txt: -------------------------------------------------------------------------------- 1 | Yay! 2 | -------------------------------------------------------------------------------- /dx/tests/033-unit-IntList/expected.txt: -------------------------------------------------------------------------------- 1 | Yay! 2 | -------------------------------------------------------------------------------- /dx/tests/077-dex-code-alignment/expected.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/016-intern/expected.txt: -------------------------------------------------------------------------------- 1 | good! foobar 2 | -------------------------------------------------------------------------------- /dx/tests/001-nop/expected.txt: -------------------------------------------------------------------------------- 1 | I am a jelly donut. 2 | -------------------------------------------------------------------------------- /dx/tests/035-dex-instance-var/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/036-dex-static-var/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/039-dex-static-method/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/040-dex-constructor/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/042-dex-ignore-result/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/089-dex-define-object/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /tests/014-math3/expected.txt: -------------------------------------------------------------------------------- 1 | testMath3 success 2 | -------------------------------------------------------------------------------- /tests/021-string2/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected npe 2 | -------------------------------------------------------------------------------- /tests/056-const-string-jumbo/expected.txt: -------------------------------------------------------------------------------- 1 | zorch 2 | -------------------------------------------------------------------------------- /tools/Android.mk: -------------------------------------------------------------------------------- 1 | include $(all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/unused.S: -------------------------------------------------------------------------------- 1 | jmp common_abort 2 | -------------------------------------------------------------------------------- /dx/tests/037-dex-static-final-var/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/038-dex-instance-method/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/041-dex-abstract-method/expected.txt: -------------------------------------------------------------------------------- 1 | Good! 2 | -------------------------------------------------------------------------------- /dx/tests/110-dex-preserve-this/expected.txt: -------------------------------------------------------------------------------- 1 | this: v4 2 | -------------------------------------------------------------------------------- /tests/001-nop/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Blort." 4 | -------------------------------------------------------------------------------- /tests/026-access/expected.txt: -------------------------------------------------------------------------------- 1 | access test 2 | Blort. 3 | -------------------------------------------------------------------------------- /tests/052-verifier-fun/expected.txt: -------------------------------------------------------------------------------- 1 | BlahOne 2 | Zorch. 3 | -------------------------------------------------------------------------------- /tests/062-character-encodings/expected.txt: -------------------------------------------------------------------------------- 1 | Missing: [] 2 | -------------------------------------------------------------------------------- /tests/086-null-super/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected ITE/NPE 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/unused.S: -------------------------------------------------------------------------------- 1 | bl common_abort 2 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MOVE_OBJECT.c: -------------------------------------------------------------------------------- 1 | %include "c/OP_MOVE.c" 2 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_RETURN_OBJECT.c: -------------------------------------------------------------------------------- 1 | %include "c/OP_RETURN.c" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_BREAKPOINT.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_3E.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_3F.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_40.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_41.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_42.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_43.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_73.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_79.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_7A.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_E3.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_E4.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_E5.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_E6.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_E7.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_F1.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_FC.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_FD.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_FE.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_UNUSED_FF.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /dx/etc/manifest.txt: -------------------------------------------------------------------------------- 1 | Main-Class: com.android.dx.command.Main 2 | -------------------------------------------------------------------------------- /tests/066-mismatched-super/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected ICCE 2 | -------------------------------------------------------------------------------- /tests/079-phantom/info.txt: -------------------------------------------------------------------------------- 1 | Exercise phantom references. 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_3E.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_3F.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_40.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_41.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_42.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_43.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_73.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_79.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_7A.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_F1.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_UNUSED_FF.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MOVE_OBJECT_16.c: -------------------------------------------------------------------------------- 1 | %include "c/OP_MOVE_16.c" 2 | -------------------------------------------------------------------------------- /vm/mterp/x86-atom/OP_BREAKPOINT.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /tests/001-nop/build: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Nothing to do here. 4 | -------------------------------------------------------------------------------- /tests/022-interface/expected.txt: -------------------------------------------------------------------------------- 1 | ImplBSub intf: 205 2 | ImplA: 7 3 | -------------------------------------------------------------------------------- /tests/029-assert/expected.txt: -------------------------------------------------------------------------------- 1 | caught expected assert exception 2 | -------------------------------------------------------------------------------- /tests/059-finalizer-throw/expected.txt: -------------------------------------------------------------------------------- 1 | In finalizer 2 | done 3 | -------------------------------------------------------------------------------- /tests/065-mismatched-implements/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected ICCE 2 | -------------------------------------------------------------------------------- /tests/073-mismatched-field/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected failure 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_BREAKPOINT.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/unused.S" 2 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MOVE_OBJECT_FROM16.c: -------------------------------------------------------------------------------- 1 | %include "c/OP_MOVE_FROM16.c" 2 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MOVE_RESULT_OBJECT.c: -------------------------------------------------------------------------------- 1 | %include "c/OP_MOVE_RESULT.c" 2 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_3E.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_3E) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_3F.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_3F) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_40.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_40) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_41.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_41) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_42.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_42) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_43.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_43) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_73.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_73) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_79.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_79) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_7A.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_7A) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_UNUSED_F1.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_UNUSED_F1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_EXECUTE_INLINE_RANGE.S: -------------------------------------------------------------------------------- 1 | %include "x86/unused.S" 2 | -------------------------------------------------------------------------------- /dx/tests/113-old-style-inner-class/expected.txt: -------------------------------------------------------------------------------- 1 | warning: 2 | warning: 3 | -------------------------------------------------------------------------------- /tests/002-sleep/expected.txt: -------------------------------------------------------------------------------- 1 | Sleeping 1000 msec... 2 | Done sleeping 3 | -------------------------------------------------------------------------------- /tests/004-annotations/info.txt: -------------------------------------------------------------------------------- 1 | Test a bunch of uses of annotations. 2 | -------------------------------------------------------------------------------- /tests/018-stack-overflow/expected.txt: -------------------------------------------------------------------------------- 1 | caught SOE 2 | SOE test done 3 | -------------------------------------------------------------------------------- /tests/025-access-controller/expected.txt: -------------------------------------------------------------------------------- 1 | AccessControllerTest: got 39 2 | -------------------------------------------------------------------------------- /tests/064-field-access/expected.txt: -------------------------------------------------------------------------------- 1 | good 2 | Got expected failure 3 | -------------------------------------------------------------------------------- /tests/074-gc-thrash/expected.txt: -------------------------------------------------------------------------------- 1 | Running (10 seconds) ... 2 | Done. 3 | -------------------------------------------------------------------------------- /tests/081-hot-exceptions/expected.txt: -------------------------------------------------------------------------------- 1 | sum = 0 2 | exception = 1024 3 | -------------------------------------------------------------------------------- /tools/dexdeps/etc/manifest.txt: -------------------------------------------------------------------------------- 1 | Main-Class: com.android.dexdeps.Main 2 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AGET.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_AGET(OP_AGET, "", u4, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_APUT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_APUT(OP_APUT, "", u4, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_EQ.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XX(OP_IF_EQ, "eq", ==) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_GE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XX(OP_IF_GE, "ge", >=) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_GT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XX(OP_IF_GT, "gt", >) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_LE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XX(OP_IF_LE, "le", <=) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_LT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XX(OP_IF_LT, "lt", <) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_NE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XX(OP_IF_NE, "ne", !=) 2 | OP_END 3 | -------------------------------------------------------------------------------- /dx/tests/029-unit-Bits/info.txt: -------------------------------------------------------------------------------- 1 | Unit test for com.android.dx.util.Bits. 2 | -------------------------------------------------------------------------------- /dx/tests/097-dex-branch-offset-zero/expected.txt: -------------------------------------------------------------------------------- 1 | No bad branches found. 2 | -------------------------------------------------------------------------------- /tests/019-wrong-array-type/expected.txt: -------------------------------------------------------------------------------- 1 | Got correct array store exception 2 | -------------------------------------------------------------------------------- /tests/031-class-attributes/src/OtherClass.java: -------------------------------------------------------------------------------- 1 | class OtherClass { 2 | } 3 | -------------------------------------------------------------------------------- /tests/037-inherit/expected.txt: -------------------------------------------------------------------------------- 1 | magic is 64.0 2 | 0: 64.0 3 | 1: 64.0 4 | -------------------------------------------------------------------------------- /tests/072-precise-gc/info.txt: -------------------------------------------------------------------------------- 1 | Try to detect whether precise GC is working. 2 | -------------------------------------------------------------------------------- /tests/087-gc-after-link/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected ITE/NPE 2 | GC complete. 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_EQZ.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XXZ(OP_IF_EQZ, "eqz", ==) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_GEZ.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XXZ(OP_IF_GEZ, "gez", >=) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_GTZ.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XXZ(OP_IF_GTZ, "gtz", >) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_LEZ.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XXZ(OP_IF_LEZ, "lez", <=) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_LTZ.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XXZ(OP_IF_LTZ, "ltz", <) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IF_NEZ.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_IF_XXZ(OP_IF_NEZ, "nez", !=) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_NOP.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_NOP) 2 | FINISH(1); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_OR_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_OR_INT, "or", |, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /dx/tests/033-unit-IntList/info.txt: -------------------------------------------------------------------------------- 1 | Unit test for com.android.dx.util.IntList. 2 | -------------------------------------------------------------------------------- /tests/003-omnibus-opcodes/info.txt: -------------------------------------------------------------------------------- 1 | This is a smoke test of many Dalvik opcodes. 2 | -------------------------------------------------------------------------------- /tests/048-server-socket/expected.txt: -------------------------------------------------------------------------------- 1 | opened! 2 | closed! 3 | reopened! 4 | done 5 | -------------------------------------------------------------------------------- /tests/058-enum-order/info.txt: -------------------------------------------------------------------------------- 1 | Test that the ordering of enums is as expected. 2 | -------------------------------------------------------------------------------- /tests/070-nio-buffer/info.txt: -------------------------------------------------------------------------------- 1 | Exercise NIO buffers (e.g. java.nio.ByteBuffer). 2 | -------------------------------------------------------------------------------- /tests/078-polymorphic-virtual/expected.txt: -------------------------------------------------------------------------------- 1 | 10000000 2 | 20000000 3 | 30000000 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT(OP_ADD_FLOAT, "add", +) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_ADD_INT, "add", +, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_ADD_LONG, "add", +, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AND_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_AND_INT, "and", &, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AND_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_AND_LONG, "and", &, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT(OP_DIV_FLOAT, "div", /) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_DIV_INT, "div", /, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_DIV_LONG, "div", /, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT(OP_MUL_FLOAT, "mul", *) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_MUL_INT, "mul", *, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_MUL_LONG, "mul", *, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_NEG_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_UNOP(OP_NEG_INT, "neg-int", -, , ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_OR_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_OR_LONG, "or", |, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_REM_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_REM_INT, "rem", %, 2) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_REM_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_REM_LONG, "rem", %, 2) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT(OP_SUB_FLOAT, "sub", -) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_SUB_INT, "sub", -, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_SUB_LONG, "sub", -, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_XOR_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT(OP_XOR_INT, "xor", ^, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_XOR_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG(OP_XOR_LONG, "xor", ^, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AGET_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_AGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IPUT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MOVE_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_MOVE.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SGET_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SGET_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SGET_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SGET_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SGET_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SGET_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SPUT_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SPUT_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SPUT_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SPUT_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SPUT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /dx/etc/jasmin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/dx/etc/jasmin.jar -------------------------------------------------------------------------------- /dx/tests/002-minimal-valid/info.txt: -------------------------------------------------------------------------------- 1 | This is just a dump of a simple but valid class. 2 | -------------------------------------------------------------------------------- /tests/056-const-string-jumbo/info.txt: -------------------------------------------------------------------------------- 1 | Test that the opcode const-string/jumbo works. 2 | -------------------------------------------------------------------------------- /tests/071-dexfile/expected.txt: -------------------------------------------------------------------------------- 1 | Constructing another 2 | Got expected ULE 3 | done 4 | -------------------------------------------------------------------------------- /vm/compiler/template/README.txt: -------------------------------------------------------------------------------- 1 | See README.txt under dalvik/vm/mterp for details. 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPUT_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPUT_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPUT_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE(OP_ADD_DOUBLE, "add", +) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AGET_BYTE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_AGET(OP_AGET_BYTE, "-byte", s1, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AGET_CHAR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_AGET(OP_AGET_CHAR, "-char", u2, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AGET_SHORT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_AGET(OP_AGET_SHORT, "-short", s2, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_APUT_BYTE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_APUT(OP_APUT_BYTE, "-byte", s1, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_APUT_CHAR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_APUT(OP_APUT_CHAR, "-char", u2, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_APUT_SHORT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_APUT(OP_APUT_SHORT, "-short", s2, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE(OP_DIV_DOUBLE, "div", /) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE(OP_MUL_DOUBLE, "mul", *) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_NEG_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_UNOP(OP_NEG_LONG, "neg-long", -, , _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHL_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT(OP_SHL_INT, "shl", (s4), <<) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHL_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_LONG(OP_SHL_LONG, "shl", (s8), <<) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHR_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT(OP_SHR_INT, "shr", (s4), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHR_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_LONG(OP_SHR_LONG, "shr", (s8), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE(OP_SUB_DOUBLE, "sub", -) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_USHR_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT(OP_USHR_INT, "ushr", (u4), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MOVE_OBJECT_16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_MOVE_16.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_RETURN_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_RETURN.S" 3 | -------------------------------------------------------------------------------- /dx/tests/085-dex-jsr-ret/info.txt: -------------------------------------------------------------------------------- 1 | Tests handling of the Java jsr/jsr_w/ret bytecodes. 2 | -------------------------------------------------------------------------------- /tests/024-illegal-access/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected failure 1 2 | Got expected failure 2 3 | -------------------------------------------------------------------------------- /tests/028-array-write/expected.txt: -------------------------------------------------------------------------------- 1 | Running writeTest... 2 | Running copyTest... 3 | Done! 4 | -------------------------------------------------------------------------------- /tests/035-enum/expected.txt: -------------------------------------------------------------------------------- 1 | found field CRAWLING 2 | synthetic? false 3 | enum? true 4 | -------------------------------------------------------------------------------- /tests/075-verification-error/info.txt: -------------------------------------------------------------------------------- 1 | Exercise deferred verification error reporting. 2 | -------------------------------------------------------------------------------- /tests/080-oom-throw/expected.txt: -------------------------------------------------------------------------------- 1 | Array allocation failed 2 | Instance allocation failed 3 | -------------------------------------------------------------------------------- /tests/084-class-init/info.txt: -------------------------------------------------------------------------------- 1 | Test class initialization edge cases and race conditions. 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AGET_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_AGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MOVE_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_MOVE.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_RETURN_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_RETURN.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPUT_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SPUT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AGET_BOOLEAN.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_AGET(OP_AGET_BOOLEAN, "-boolean", u1, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AGET_OBJECT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_AGET(OP_AGET_OBJECT, "-object", u4, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AGET_WIDE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_AGET(OP_AGET_WIDE, "-wide", s8, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_APUT_BOOLEAN.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_APUT(OP_APUT_BOOLEAN, "-boolean", u1, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_APUT_WIDE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_APUT(OP_APUT_WIDE, "-wide", s8, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_CMP_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_CMPX(OP_CMP_LONG, "-long", s8, _WIDE, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_BYTE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_BYTE, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_CHAR.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_CHAR, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_SHORT.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_SHORT, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_BYTE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_BYTE, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_CHAR.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_CHAR, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_SHORT.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_SHORT, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_NEG_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_UNOP(OP_NEG_FLOAT, "neg-float", -, , _FLOAT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_NOT_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_UNOP(OP_NOT_INT, "not-int", , ^ 0xffffffff, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_BYTE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_BYTE, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_CHAR.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_CHAR, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_SHORT.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_SHORT, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_BYTE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_BYTE, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_CHAR.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_CHAR, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_SHORT.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_SHORT, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_USHR_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_LONG(OP_USHR_LONG, "ushr", (u8), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_EQ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bincmp.S" { "revcmp":"ne" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_EQZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/zcmp.S" { "revcmp":"ne" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_GE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bincmp.S" { "revcmp":"l" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_GEZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/zcmp.S" { "revcmp":"l" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_GT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bincmp.S" { "revcmp":"le" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_GTZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/zcmp.S" { "revcmp":"le" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_LE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bincmp.S" { "revcmp":"g" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_LEZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/zcmp.S" { "revcmp":"g" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_LT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bincmp.S" { "revcmp":"ge" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_LTZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/zcmp.S" { "revcmp":"ge" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_NE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bincmp.S" { "revcmp":"e" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IF_NEZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/zcmp.S" { "revcmp":"e" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_OBJECT_QUICK.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IGET_QUICK.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SGET_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SGET.S" 3 | -------------------------------------------------------------------------------- /dx/tests/112-dex-return-jsr-result/expected.txt: -------------------------------------------------------------------------------- 1 | Generated: ./blort.class 2 | total invokes: 2 3 | -------------------------------------------------------------------------------- /tests/059-finalizer-throw/info.txt: -------------------------------------------------------------------------------- 1 | Verify that exceptions thrown from finalizers are ignored. 2 | -------------------------------------------------------------------------------- /tests/083-jit-regressions/expected.txt: -------------------------------------------------------------------------------- 1 | b2296099 passes 2 | b2302318 passes 3 | b2487514 passes 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MOVE_OBJECT_16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_MOVE_16.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_RETURN_VOID.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | b common_returnFromMethod 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_ADD_INT_2ADDR, "add", +, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_INT_LIT16.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT16(OP_ADD_INT_LIT16, "add", +, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT8(OP_ADD_INT_LIT8, "add", +, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AND_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_AND_INT_2ADDR, "and", &, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AND_INT_LIT16.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT16(OP_AND_INT_LIT16, "and", &, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AND_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT8(OP_AND_INT_LIT8, "and", &, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_DIV_INT_2ADDR, "div", /, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_INT_LIT16.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT16(OP_DIV_INT_LIT16, "div", /, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT8(OP_DIV_INT_LIT8, "div", /, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_BOOLEAN.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_BOOLEAN, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X_QUICK(OP_IGET_QUICK, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INT_TO_BYTE.c: -------------------------------------------------------------------------------- 1 | HANDLE_INT_TO_SMALL(OP_INT_TO_BYTE, "byte", s1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INT_TO_CHAR.c: -------------------------------------------------------------------------------- 1 | HANDLE_INT_TO_SMALL(OP_INT_TO_CHAR, "char", u2) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_BOOLEAN.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_BOOLEAN, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X_QUICK(OP_IPUT_QUICK, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_MUL_INT_2ADDR, "mul", *, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_INT_LIT16.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT16(OP_MUL_INT_LIT16, "mul", *, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT8(OP_MUL_INT_LIT8, "mul", *, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_NEG_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_UNOP(OP_NEG_DOUBLE, "neg-double", -, , _DOUBLE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_OR_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_OR_INT_2ADDR, "or", |, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_OR_INT_LIT16.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT16(OP_OR_INT_LIT16, "or", |, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_OR_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT8(OP_OR_INT_LIT8, "or", |, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_OR_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_OR_LONG_2ADDR, "or", |, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_REM_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_REM_INT_2ADDR, "rem", %, 2) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_REM_INT_LIT16.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT16(OP_REM_INT_LIT16, "rem", %, 2) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_REM_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT8(OP_REM_INT_LIT8, "rem", %, 2) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_BOOLEAN.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_BOOLEAN, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_BOOLEAN.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_BOOLEAN, "", Int, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_SUB_INT_2ADDR, "sub", -, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_XOR_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_2ADDR(OP_XOR_INT_2ADDR, "xor", ^, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_XOR_INT_LIT16.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT16(OP_XOR_INT_LIT16, "xor", ^, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_XOR_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_INT_LIT8(OP_XOR_INT_LIT8, "xor", ^, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IPUT_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IPUT_OBJECT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MOVE_OBJECT_FROM16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_MOVE_FROM16.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MOVE_RESULT_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_MOVE_RESULT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_NEG_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/unop.S" {"instr":"negl %eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_NOT_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/unop.S" {"instr":"notl %eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_RETURN_VOID.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | jmp common_returnFromMethod 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SPUT_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_SPUT_OBJECT.S" 3 | -------------------------------------------------------------------------------- /hit/samples/android.hprof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/hit/samples/android.hprof -------------------------------------------------------------------------------- /tests/006-count10/expected.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 1 3 | 2 4 | 3 5 | 4 6 | 5 7 | 6 8 | 7 9 | 8 10 | 9 11 | -------------------------------------------------------------------------------- /tests/062-character-encodings/info.txt: -------------------------------------------------------------------------------- 1 | Test that the list of character encodings is what we expect. 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_EQ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/bincmp.S" { "revcmp":"ne" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_EQZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/zcmp.S" { "revcmp":"ne" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_GE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/bincmp.S" { "revcmp":"lt" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_GEZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/zcmp.S" { "revcmp":"lt" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_GT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/bincmp.S" { "revcmp":"le" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_GTZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/zcmp.S" { "revcmp":"le" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_LE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/bincmp.S" { "revcmp":"gt" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_LEZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/zcmp.S" { "revcmp":"gt" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_LT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/bincmp.S" { "revcmp":"ge" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_LTZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/zcmp.S" { "revcmp":"ge" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_NE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/bincmp.S" { "revcmp":"eq" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IF_NEZ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/zcmp.S" { "revcmp":"eq" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_OBJECT_QUICK.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IGET_QUICK.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MOVE_OBJECT_FROM16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_MOVE_FROM16.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MOVE_RESULT_OBJECT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_MOVE_RESULT.S" 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_IF_EQ.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/bincmp.S" { "revcmp":"ne" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_IF_GE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/bincmp.S" { "revcmp":"lt" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_IF_GT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/bincmp.S" { "revcmp":"le" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_IF_LE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/bincmp.S" { "revcmp":"gt" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_IF_LT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/bincmp.S" { "revcmp":"ge" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_IF_NE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/bincmp.S" { "revcmp":"eq" } 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_DOUBLE_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE_2ADDR(OP_ADD_DOUBLE_2ADDR, "add", +) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_FLOAT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT_2ADDR(OP_ADD_FLOAT_2ADDR, "add", +) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_ADD_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_ADD_LONG_2ADDR, "add", +, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_AND_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_AND_LONG_2ADDR, "and", &, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_CMPG_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_CMPX(OP_CMPG_FLOAT, "g-float", float, _FLOAT, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_CMPL_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_CMPX(OP_CMPL_FLOAT, "l-float", float, _FLOAT, -1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_DOUBLE_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE_2ADDR(OP_DIV_DOUBLE_2ADDR, "div", /) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_FLOAT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT_2ADDR(OP_DIV_FLOAT_2ADDR, "div", /) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DIV_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_DIV_LONG_2ADDR, "div", /, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_WIDE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_WIDE, "-wide", Long, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_WIDE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_WIDE, "-wide", Long, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_DOUBLE_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE_2ADDR(OP_MUL_DOUBLE_2ADDR, "mul", *) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_FLOAT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT_2ADDR(OP_MUL_FLOAT_2ADDR, "mul", *) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_MUL_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_MUL_LONG_2ADDR, "mul", *, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_REM_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_REM_LONG_2ADDR, "rem", %, 2) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_WIDE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_WIDE, "-wide", Long, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHL_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT_2ADDR(OP_SHL_INT_2ADDR, "shl", (s4), <<) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHL_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT_LIT8(OP_SHL_INT_LIT8, "shl", (s4), <<) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHR_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT_2ADDR(OP_SHR_INT_2ADDR, "shr", (s4), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHR_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT_LIT8(OP_SHR_INT_LIT8, "shr", (s4), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_WIDE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_WIDE, "-wide", Long, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_DOUBLE_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_DOUBLE_2ADDR(OP_SUB_DOUBLE_2ADDR, "sub", -) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_FLOAT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_FLOAT_2ADDR(OP_SUB_FLOAT_2ADDR, "sub", -) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SUB_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_SUB_LONG_2ADDR, "sub", -, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_XOR_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_X_LONG_2ADDR(OP_XOR_LONG_2ADDR, "xor", ^, 0) 2 | OP_END 3 | -------------------------------------------------------------------------------- /dx/src/junit/runner/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/dx/src/junit/runner/logo.gif -------------------------------------------------------------------------------- /vm/mterp/c/OP_CMPG_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_CMPX(OP_CMPG_DOUBLE, "g-double", double, _DOUBLE, 1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_CMPL_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_CMPX(OP_CMPL_DOUBLE, "l-double", double, _DOUBLE, -1) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHL_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_LONG_2ADDR(OP_SHL_LONG_2ADDR, "shl", (s8), <<) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SHR_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_LONG_2ADDR(OP_SHR_LONG_2ADDR, "shr", (s8), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_USHR_INT_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT_2ADDR(OP_USHR_INT_2ADDR, "ushr", (u4), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_USHR_INT_LIT8.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_INT_LIT8(OP_USHR_INT_LIT8, "ushr", (u4), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INT_TO_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/unop.S" {"instr":"movsbl %al,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INT_TO_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/unop.S" {"instr":"movzwl %ax,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INT_TO_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/unop.S" {"instr":"movswl %ax,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SHL_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop1.S" {"instr":"sall %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SHR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop1.S" {"instr":"sarl %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_USHR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop1.S" {"instr":"shrl %cl,%eax"} 3 | -------------------------------------------------------------------------------- /dx/tests/043-dex-two-classes/expected.txt: -------------------------------------------------------------------------------- 1 | processing Blort.class... 2 | processing Zorch.class... 3 | Good! 4 | -------------------------------------------------------------------------------- /tests/058-enum-order/expected.txt: -------------------------------------------------------------------------------- 1 | 0: CORN 2 | 1: BLUEBERRY 3 | 2: CRANBERRY 4 | 3: BRAN 5 | 4: BLACKBERRY 6 | -------------------------------------------------------------------------------- /tests/074-gc-thrash/info.txt: -------------------------------------------------------------------------------- 1 | This thrashes the memory allocator and garbage collector for a brief period. 2 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IGET.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IPUT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IPUT.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_NEG_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"instr":"rsb r0, r0, #0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_NOT_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"instr":"mvn r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_OR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"orr r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPUT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SPUT.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6/OP_INT_TO_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"instr":"sxtb r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6/OP_INT_TO_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"instr":"uxth r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6/OP_INT_TO_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"instr":"sxth r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_INT_TO_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unop.S" {"instr":"sxtb r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_INT_TO_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unop.S" {"instr":"uxth r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_NEG_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unop.S" {"instr":"rsb r0, r0, #0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_NOT_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unop.S" {"instr":"mvn r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_OBJECT.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_OBJECT, "-object", Object, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_VOLATILE, "-volatile", IntVolatile, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_WIDE_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X_QUICK(OP_IGET_WIDE_QUICK, "-wide", Long, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INT_TO_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_INT_TO_FLOAT, "int-to-float", _INT, _FLOAT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INT_TO_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_INT_TO_LONG, "int-to-long", _INT, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_VOLATILE, "-volatile", IntVolatile, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_WIDE_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X_QUICK(OP_IPUT_WIDE_QUICK, "-wide", Long, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_LONG_TO_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_LONG_TO_INT, "long-to-int", _WIDE, _INT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_NOT_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_UNOP(OP_NOT_LONG, "not-long", , ^ 0xffffffffffffffffULL, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_OBJECT.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_OBJECT, "-object", Object, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_VOLATILE, "-volatile", IntVolatile, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_OBJECT.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_OBJECT, "-object", Object, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_VOLATILE, "-volatile", IntVolatile, ) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_USHR_LONG_2ADDR.c: -------------------------------------------------------------------------------- 1 | HANDLE_OP_SHX_LONG_2ADDR(OP_USHR_LONG_2ADDR, "ushr", (u8), >>) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop.S" {"instr":"addl (rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit16.S" {"instr":"addl %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"addl %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AGET_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_AGET.S" { "load":"movsbl", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AGET_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_AGET.S" { "load":"movzwl", "shift":"2" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AGET_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_AGET.S" { "load":"movswl", "shift":"2" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AND_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop.S" {"instr":"andl (rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AND_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit16.S" {"instr":"andl %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AND_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"andl %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INT_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"load":"fildl","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_NOP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | FETCH_INST_WORD(1) 3 | ADVANCE_PC(1) 4 | GOTO_NEXT 5 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_OR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop.S" {"instr":"orl (rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_OR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"orl %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_REM_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindiv.S" {"result":"%edx","special":"$0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SHL_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"sall %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SHR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"sarl %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop.S" {"instr":"subl (rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_XOR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop.S" {"instr":"xorl (rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_XOR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"xor %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /dx/src/junit/runner/smalllogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/dx/src/junit/runner/smalllogo.gif -------------------------------------------------------------------------------- /tests/004-annotations/src/android/test/anno/package-info.java: -------------------------------------------------------------------------------- 1 | @AnnoSimplePackage 2 | package android.test.anno; 3 | -------------------------------------------------------------------------------- /tests/052-verifier-fun/src/BlahFeature.java: -------------------------------------------------------------------------------- 1 | public interface BlahFeature { 2 | public void doStuff(); 3 | } 4 | -------------------------------------------------------------------------------- /tests/061-out-of-memory/info.txt: -------------------------------------------------------------------------------- 1 | Tests the various ways that an OutOfMemoryError can be constructed and thrown. 2 | -------------------------------------------------------------------------------- /tests/067-preemptive-unpark/info.txt: -------------------------------------------------------------------------------- 1 | Test that Unsafe.unpark() operates as expected, in particular across a gc. 2 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_ADD_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop.S" {"instr":"fadds s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_DIV_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop.S" {"instr":"fdivs s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_FLOAT_TO_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/funop.S" {"instr":"ftosizs s1, s0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_INT_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/funop.S" {"instr":"fsitos s1, s0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_MUL_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop.S" {"instr":"fmuls s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_SUB_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop.S" {"instr":"fsubs s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv4t/OP_IGET_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv4t/OP_IGET_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv4t/OP_IPUT_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv4t/OP_IPUT_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv4t/OP_SGET_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv4t/OP_SGET_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv4t/OP_SPUT_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv4t/OP_SPUT_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"bl __aeabi_fadd"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"add r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AGET_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_AGET.S" { "load":"ldrh", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AND_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"and r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"bl __aeabi_fdiv"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IGET_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IPUT_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IPUT_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"bl __aeabi_fmul"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPUT_WIDE_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SPUT_WIDE.S" {"volatile":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"bl __aeabi_fsub"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"sub r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_XOR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"eor r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_INT_TO_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unop.S" {"instr":"sxth r0, r0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INT_TO_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_INT_TO_DOUBLE, "int-to-double", _INT, _DOUBLE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_LONG_TO_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_LONG_TO_FLOAT, "long-to-float", _WIDE, _FLOAT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AGET_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_AGET.S" { "load":"movzbl", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_CMPG_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_CMPG_DOUBLE.S" {"is_double":"0","nanval":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindiv.S" {"result":"%eax","special":"$0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DOUBLE_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"load":"fldl","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DOUBLE_TO_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/cvtfp_int.S" {"srcdouble":"1","tgtlong":"0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DOUBLE_TO_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/cvtfp_int.S" {"srcdouble":"1","tgtlong":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_FLOAT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"load":"flds","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_FLOAT_TO_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/cvtfp_int.S" {"srcdouble":"0","tgtlong":"0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_FLOAT_TO_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/cvtfp_int.S" {"srcdouble":"0","tgtlong":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IGET.S" { "load":"movzbl", "sqnum":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"load":"fildl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_LONG_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"load":"fildll","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_LONG_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"load":"fildll","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_OR_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit16.S" {"instr":"orl %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_REM_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindivLit8.S" {"result":"%edx","special":"$0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SHL_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/shop2addr.S" {"instr":"sall %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SHR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/shop2addr.S" {"instr":"sarl %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_USHR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/shop2addr.S" {"instr":"shrl %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_USHR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"shrl %cl,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_XOR_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit16.S" {"instr":"xor %ecx,%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_ADD_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide.S" {"instr":"faddd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_DIV_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide.S" {"instr":"fdivd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_FLOAT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/funopWider.S" {"instr":"fcvtds d0, s0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_INT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/funopWider.S" {"instr":"fsitod d0, s0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_MUL_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide.S" {"instr":"fmuld d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_SUB_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide.S" {"instr":"fsubd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"instr":"bl __aeabi_dadd"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"instr":"add r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AGET_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_AGET.S" { "load":"ldrb", "shift":"0" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AGET_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_AGET.S" { "load":"ldrsb", "shift":"0" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AGET_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_AGET.S" { "load":"ldrsh", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AND_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"instr":"and r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_APUT_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_APUT.S" { "store":"strb", "shift":"0" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_APUT_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_APUT.S" { "store":"strb", "shift":"0" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_APUT_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_APUT.S" { "store":"strh", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_APUT_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_APUT.S" { "store":"strh", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"instr":"bl __aeabi_ddiv"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IGET.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INT_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"instr":"bl __aeabi_i2f"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"instr":"bl __aeabi_dmul"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_OR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"instr":"orr r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SGET_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SGET.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"instr":"bl __aeabi_dsub"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_XOR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"instr":"eor r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_INT_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unop.S" {"instr":"bl __aeabi_i2f"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DOUBLE_TO_FLOAT.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_DOUBLE_TO_FLOAT, "double-to-float", _DOUBLE, _FLOAT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_FLOAT_TO_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_FLOAT_TO_DOUBLE, "float-to-double", _FLOAT, _DOUBLE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_OBJECT_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X_QUICK(OP_IGET_OBJECT_QUICK, "-object", Object, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INT_TO_SHORT.c: -------------------------------------------------------------------------------- 1 | HANDLE_INT_TO_SMALL(OP_INT_TO_SHORT, "short", s2) /* want sign bit */ 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_OBJECT_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X_QUICK(OP_IPUT_OBJECT_QUICK, "-object", Object, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_LONG_TO_DOUBLE.c: -------------------------------------------------------------------------------- 1 | HANDLE_NUMCONV(OP_LONG_TO_DOUBLE, "long-to-double", _WIDE, _DOUBLE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_CMPL_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_CMPG_DOUBLE.S" {"is_double":"1","nanval":"-1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_CMPL_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_CMPG_DOUBLE.S" {"is_double":"0","nanval":"-1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_FILLED_NEW_ARRAY_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_FILLED_NEW_ARRAY.S" { "isrange":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_OR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop2addr.S" {"instr":"orl %eax,(rFP,%ecx,4)"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_REM_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindiv2addr.S" {"result":"%edx","special":"$0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_REM_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindivLit16.S" {"result":"%edx","special":"$0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_REM_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_DIV_LONG.S" {"routine":"__moddi3","special":"$0"} 3 | -------------------------------------------------------------------------------- /dx/src/com/android/dx/util/package.html: -------------------------------------------------------------------------------- 1 | 2 |

Utility classes for class file access/manipulation.

3 | 4 | -------------------------------------------------------------------------------- /dx/tests/099-dex-core-library-error/expected.txt: -------------------------------------------------------------------------------- 1 | exit code: 1 2 | exit code: 1 3 | exit code: 0 4 | Found zorch.dex 5 | Done 6 | -------------------------------------------------------------------------------- /tests/052-verifier-fun/src/Blah.java: -------------------------------------------------------------------------------- 1 | public abstract class Blah { 2 | public void unrelatedStuff() { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /tests/072-precise-gc/expected.txt: -------------------------------------------------------------------------------- 1 | Valid refs: 0 2 | String0String1String2String3String4String5String6String7String8String9 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te/TEMPLATE_CMPG_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/TEMPLATE_CMPL_DOUBLE.S" { "naninst":"mov r0, #1" } 2 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te/TEMPLATE_CMPG_FLOAT.S: -------------------------------------------------------------------------------- 1 | %include "armv5te/TEMPLATE_CMPL_FLOAT.S" { "naninst":"mov r0, #1" } 2 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_ADD_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop2addr.S" {"instr":"fadds s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_DIV_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop2addr.S" {"instr":"fdivs s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_DOUBLE_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/funopNarrower.S" {"instr":"fcvtsd s0, d0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_DOUBLE_TO_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/funopNarrower.S" {"instr":"ftosizd s0, d0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_MUL_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop2addr.S" {"instr":"fmuls s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_SUB_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinop2addr.S" {"instr":"fsubs s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"add r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit16.S" {"instr":"add r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AND_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"and r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AND_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit16.S" {"instr":"and r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_CMPG_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_CMPL_DOUBLE.S" { "naninst":"mov r1, #1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_CMPG_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_CMPL_FLOAT.S" { "naninst":"mov r1, #1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_FLOAT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopWider.S" {"instr":"bl __aeabi_f2d"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopWider.S" {"instr":"bl __aeabi_i2d"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INT_TO_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopWider.S" {"instr":"mov r1, r0, asr #31"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INVOKE_STATIC_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_INVOKE_STATIC.S" { "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IPUT_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_IPUT_OBJECT.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_LONG_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopWide.S" {"instr":"bl __aeabi_l2d"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_LONG_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopNarrower.S" {"instr":"bl __aeabi_l2f"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_NEG_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"instr":"add r0, r0, #0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_OR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"orr r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_OR_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit16.S" {"instr":"orr r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_RSUB_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"instr":"rsb r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPUT_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_SPUT_OBJECT.S" {"barrier":"SMP_DMB"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"sub r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_XOR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"eor r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_XOR_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit16.S" {"instr":"eor r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_ADD_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"add r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_ADD_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopLit16.S" {"instr":"add r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_AND_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"and r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_AND_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopLit16.S" {"instr":"and r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_FLOAT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopWider.S" {"instr":"bl __aeabi_f2d"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_INT_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopWider.S" {"instr":"bl __aeabi_i2d"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_INT_TO_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopWider.S" {"instr":"mov r1, r0, asr #31"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_LONG_TO_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopWide.S" {"instr":"bl __aeabi_l2d"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_LONG_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopNarrower.S" {"instr":"bl __aeabi_l2f"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_NEG_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unop.S" {"instr":"add r0, r0, #0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_OR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"orr r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_OR_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopLit16.S" {"instr":"orr r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_SUB_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"sub r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_XOR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"eor r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_XOR_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopLit16.S" {"instr":"eor r0, r0, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_WIDE_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_WIDE_VOLATILE, "-wide-volatile", LongVolatile, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_WIDE_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_WIDE_VOLATILE, "-wide-volatile", LongVolatile, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_WIDE_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_WIDE_VOLATILE, "-wide-volatile", LongVolatile, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_WIDE_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_WIDE_VOLATILE, "-wide-volatile", LongVolatile, _WIDE) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"faddl","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"fadds","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop2addr.S" {"instr":"addl %eax,(rFP,%ecx,4)"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AND_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop2addr.S" {"instr":"andl %eax,(rFP,%ecx,4)"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_APUT_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_APUT.S" {"reg":"%cl", "store":"movb", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_APUT_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_APUT.S" { "reg":"%cl", "store":"movb", "shift":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_APUT_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_APUT.S" { "reg":"%cx", "store":"movw", "shift":"2" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_APUT_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_APUT.S" { "reg":"%cx", "store":"movw", "shift":"2" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"fdivl","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"fdivs","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindivLit8.S" {"result":"%eax","special":"$0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IPUT_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IPUT.S" { "store":"movw", "reg":"rINST", "sqnum":"3" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IPUT_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IPUT.S" { "store":"movw", "reg":"rINST", "sqnum":"4" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MUL_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"fmull","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MUL_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"fmuls","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_NEG_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"instr":"fchs","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_NEG_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/fpcvt.S" {"instr":"fchs","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_RSUB_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit16.S" {"instr":"subl %eax,%ecx","result":"%ecx"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"fsubl","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop.S" {"instr":"fsubs","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop2addr.S" {"instr":"subl %eax,(rFP,%ecx,4)"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_XOR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binop2addr.S" {"instr":"xorl %eax,(rFP,%ecx,4)"} 3 | -------------------------------------------------------------------------------- /dx/tests/001-nop/info.txt: -------------------------------------------------------------------------------- 1 | This is a sample no-op test, which does at least serve to verify that the 2 | test harness is working. 3 | -------------------------------------------------------------------------------- /tests/001-nop/info.txt: -------------------------------------------------------------------------------- 1 | This is a sample no-op test, which does at least serve to verify that the 2 | test harness is working. 3 | -------------------------------------------------------------------------------- /tests/004-annotations/src/android/test/anno/SomeClass.java: -------------------------------------------------------------------------------- 1 | package android.test.anno; 2 | 3 | public class SomeClass { 4 | } 5 | -------------------------------------------------------------------------------- /tests/069-field-type/expected.txt: -------------------------------------------------------------------------------- 1 | Assignment was allowed 2 | Got expected IncompatibleClassChangeError 3 | In compareTo 4 | Done 5 | -------------------------------------------------------------------------------- /vm/interp/README.txt: -------------------------------------------------------------------------------- 1 | Dalvik interpreter entry point. 2 | 3 | The "mterp" directory now holds the interpreter implementation. 4 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_ADD_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide2addr.S" {"instr":"faddd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_DIV_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide2addr.S" {"instr":"fdivd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_MUL_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide2addr.S" {"instr":"fmuld d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/arm-vfp/OP_SUB_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "arm-vfp/fbinopWide2addr.S" {"instr":"fsubd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"bl __aeabi_fadd"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"bl __aeabi_fdiv"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"instr":"bl __aeabi_idiv","chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DOUBLE_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopNarrower.S" {"instr":"bl __aeabi_d2f"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_FILLED_NEW_ARRAY_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_FILLED_NEW_ARRAY.S" { "isrange":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"bl __aeabi_fmul"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_NEG_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopWide.S" {"instr":"add r1, r1, #0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"bl __aeabi_fsub"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_ADD_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"bl __aeabi_fadd"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_DIV_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"bl __aeabi_fdiv"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_DOUBLE_TO_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopNarrower.S" {"instr":"bl __aeabi_d2f"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_MUL_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"bl __aeabi_fmul"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_NEG_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopWide.S" {"instr":"add r1, r1, #0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_SUB_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"bl __aeabi_fsub"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_FLOAT_TO_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_FLOAT_TO_INT(OP_FLOAT_TO_INT, "float-to-int", 2 | float, _FLOAT, s4, _INT) 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindiv2addr.S" {"result":"%eax","special":"$0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/bindivLit16.S" {"result":"%eax","special":"$0x80000000"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %verify "negative value is sign-extended" 3 | %include "x86/OP_IGET.S" 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_SUPER_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_INVOKE_SUPER.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IPUT_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IPUT.S" { "store":"movb","reg":"rINST_LO", "sqnum":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IPUT_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_IPUT.S" { "store":"movb", "reg":"rINST_LO", "sqnum":"2" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_REM_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_DIV_LONG_2ADDR.S" {"routine":"__moddi3","special":"$0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_RSUB_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopLit8.S" {"instr":"subl %eax,%ecx" , "result":"%ecx"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SPARSE_SWITCH.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_PACKED_SWITCH.S" { "func":"dvmInterpHandleSparseSwitch" } 3 | -------------------------------------------------------------------------------- /tests/010-instance/src/X.java: -------------------------------------------------------------------------------- 1 | class X { 2 | public X() { 3 | } 4 | 5 | int foo() { 6 | return 0; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"instr":"bl __aeabi_dadd"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"instr":"bl __aeabi_ddiv"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"instr":"bl __aeabi_idiv","chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"instr":"bl __aeabi_dmul"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"instr":"bl __aeabi_dsub"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_ADD_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"instr":"bl __aeabi_dadd"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_DIV_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"instr":"bl __aeabi_ddiv"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_MUL_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"instr":"bl __aeabi_dmul"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_SUB_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"instr":"bl __aeabi_dsub"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DOUBLE_TO_INT.c: -------------------------------------------------------------------------------- 1 | HANDLE_FLOAT_TO_INT(OP_DOUBLE_TO_INT, "double-to-int", 2 | double, _DOUBLE, s4, _INT) 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_FLOAT_TO_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_FLOAT_TO_INT(OP_FLOAT_TO_LONG, "float-to-long", 2 | float, _FLOAT, s8, _WIDE) 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"fadds","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"fdivs","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_OBJECT_VOLATILE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %verify "negative value is sign-extended" 3 | %include "x86/OP_IGET.S" 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_DIRECT_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_INVOKE_DIRECT.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_STATIC_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_INVOKE_STATIC.S" { "routine":"Range","isrange":"1" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_VIRTUAL_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_INVOKE_VIRTUAL.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MUL_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"fmuls","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"fsubs","load":"flds","store":"fstps"} 3 | -------------------------------------------------------------------------------- /dx/tests/082-dex-throws-list-sharing/expected.txt: -------------------------------------------------------------------------------- 1 | java.lang.RuntimeException 2 | java.lang.Error, java.lang.UnsupportedOperationException 3 | -------------------------------------------------------------------------------- /dx/tests/103-verify-branch-ops/info.txt: -------------------------------------------------------------------------------- 1 | This tests branch opcodes to verify that their arguments are actually of 2 | the appropriate types. 3 | -------------------------------------------------------------------------------- /tests/031-class-attributes/src/otherpackage/OtherPackageClass.java: -------------------------------------------------------------------------------- 1 | package otherpackage; 2 | 3 | public class OtherPackageClass { 4 | } 5 | -------------------------------------------------------------------------------- /tests/067-preemptive-unpark/expected.txt: -------------------------------------------------------------------------------- 1 | Test starting 2 | GC'ing 3 | Asking thread to park 4 | park() returned quickly 5 | Test succeeded! 6 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"instr":"bl __aeabi_idiv","chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit16.S" {"instr":"bl __aeabi_idiv","chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"instr":"bl __aeabi_ldivmod", "chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INVOKE_DIRECT_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_INVOKE_DIRECT.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INVOKE_SUPER_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_INVOKE_SUPER.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_NOT_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopWide.S" {"preinstr":"mvn r0, r0", "instr":"mvn r1, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SPARSE_SWITCH.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_PACKED_SWITCH.S" { "func":"dvmInterpHandleSparseSwitch" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_DIV_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"instr":"bl __aeabi_idiv","chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_DIV_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopLit16.S" {"instr":"bl __aeabi_idiv","chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_NOT_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopWide.S" {"preinstr":"mvn r0, r0", "instr":"mvn r1, r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_DOUBLE_TO_LONG.c: -------------------------------------------------------------------------------- 1 | HANDLE_FLOAT_TO_INT(OP_DOUBLE_TO_LONG, "double-to-long", 2 | double, _DOUBLE, s8, _WIDE) 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IGET_OBJECT_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IGET_X(OP_IGET_OBJECT_VOLATILE, "-object-volatile", ObjectVolatile, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_IPUT_OBJECT_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_IPUT_X(OP_IPUT_OBJECT_VOLATILE, "-object-volatile", ObjectVolatile, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SGET_OBJECT_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SGET_X(OP_SGET_OBJECT_VOLATILE, "-object-volatile", ObjectVolatile, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_SPUT_OBJECT_VOLATILE.c: -------------------------------------------------------------------------------- 1 | HANDLE_SPUT_X(OP_SPUT_OBJECT_VOLATILE, "-object-volatile", ObjectVolatile, _AS_OBJECT) 2 | OP_END 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"faddl","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_DIV_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"fdivl","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_INTERFACE_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_INVOKE_INTERFACE.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_MUL_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"fmull","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binflop2addr.S" {"instr":"fsubl","load":"fldl","store":"fstpl"} 3 | -------------------------------------------------------------------------------- /tests/010-instance/src/Y.java: -------------------------------------------------------------------------------- 1 | class Y extends X { 2 | public Y() { 3 | } 4 | 5 | int bar() { 6 | return 1; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_ADD_FLOAT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinop.S" {"instr":"fadds s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_DIV_FLOAT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinop.S" {"instr":"fdivs s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_FLOAT_TO_INT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/funop.S" {"instr":"ftosizs s1, s0"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_INT_TO_FLOAT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/funop.S" {"instr":"fsitos s1, s0"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_MUL_FLOAT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinop.S" {"instr":"fmuls s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_SUB_FLOAT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinop.S" {"instr":"fsubs s2, s0, s1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INVOKE_VIRTUAL_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_INVOKE_VIRTUAL.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_SUPER_QUICK_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_INVOKE_SUPER_QUICK.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_OR_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide.S" {"instr1":"orl (rFP,%ecx,4),rPC", "instr2":"orl 4(rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /tests/011-array-copy/expected.txt: -------------------------------------------------------------------------------- 1 | string -> object 2 | object -> string 3 | object -> string (modified) 4 | caught ArrayStoreException (expected) 5 | -------------------------------------------------------------------------------- /tests/034-call-null/expected.txt: -------------------------------------------------------------------------------- 1 | java.lang.NullPointerException 2 | at Main.main(Main.java:12) 3 | at dalvik.system.NativeStart.main(Native Method) 4 | -------------------------------------------------------------------------------- /tests/047-returns/expected.txt: -------------------------------------------------------------------------------- 1 | pick 1 2 | one running 3 | one 4 | 1 5 | pick 2 6 | two running 7 | two 8 | 2 9 | pick 3 10 | three running 11 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_ADD_DOUBLE_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinopWide.S" {"instr":"faddd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_DIV_DOUBLE_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinopWide.S" {"instr":"fdivd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_FLOAT_TO_DOUBLE_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/funopWider.S" {"instr":"fcvtds d0, s0"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_INT_TO_DOUBLE_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/funopWider.S" {"instr":"fsitod d0, s0"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_MUL_DOUBLE_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinopWide.S" {"instr":"fmuld d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_SUB_DOUBLE_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/fbinopWide.S" {"instr":"fsubd d2, d0, d1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"preinstr":"adds r0, r0, r2", "instr":"adc r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AND_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"preinstr":"and r0, r0, r2", "instr":"and r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_DIV_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"instr":"bl __aeabi_ldivmod", "chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INVOKE_INTERFACE_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_INVOKE_INTERFACE.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INVOKE_SUPER_QUICK_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_INVOKE_SUPER_QUICK.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_NEG_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unopWide.S" {"preinstr":"rsbs r0, r0, #0", "instr":"rsc r1, r1, #0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_OR_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"preinstr":"orr r0, r0, r2", "instr":"orr r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SHL_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asl r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SHR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"preinstr":"subs r0, r0, r2", "instr":"sbc r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_USHR_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, lsr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_XOR_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide.S" {"preinstr":"eor r0, r0, r2", "instr":"eor r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_DIV_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"instr":"bl __aeabi_ldivmod", "chkzero":"1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_NEG_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/unopWide.S" {"preinstr":"rsbs r0, r0, #0", "instr":"rsc r1, r1, #0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide.S" {"instr1":"addl (rFP,%ecx,4),rPC", "instr2":"adcl 4(rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AND_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide.S" {"instr1":"andl (rFP,%ecx,4),rPC", "instr2":"andl 4(rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_VIRTUAL_QUICK_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/OP_INVOKE_VIRTUAL_QUICK.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide.S" {"instr1":"subl (rFP,%ecx,4),rPC", "instr2":"sbbl 4(rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_XOR_LONG.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide.S" {"instr1":"xorl (rFP,%ecx,4),rPC", "instr2":"xorl 4(rFP,%ecx,4),%eax"} 3 | -------------------------------------------------------------------------------- /dx/tests/099-dex-core-library-error/Blort.java: -------------------------------------------------------------------------------- 1 | package java.blort; 2 | 3 | public class Blort { 4 | // This space intentionally left blank. 5 | } 6 | -------------------------------------------------------------------------------- /dx/tests/099-dex-core-library-error/Muffins.java: -------------------------------------------------------------------------------- 1 | package javax.net; 2 | 3 | public class Muffins { 4 | // This space intentionally left blank. 5 | } 6 | -------------------------------------------------------------------------------- /dx/tests/099-dex-core-library-error/Zorch.java: -------------------------------------------------------------------------------- 1 | package javax.zorch; 2 | 3 | public class Zorch { 4 | // This space intentionally left blank. 5 | } 6 | -------------------------------------------------------------------------------- /dx/tests/105-verify-load-store-ops/info.txt: -------------------------------------------------------------------------------- 1 | This tests that load and store opcodes verify that their arguments are 2 | actually of the appropriate types. 3 | -------------------------------------------------------------------------------- /tests/055-enum-performance/info.txt: -------------------------------------------------------------------------------- 1 | This is a performance test of Enum.valueOf(). To see the numbers, invoke 2 | this test with the "--timing" option. 3 | -------------------------------------------------------------------------------- /tests/063-process-manager/info.txt: -------------------------------------------------------------------------------- 1 | Test that spawning a child process and then reaping it (a) works and (b) 2 | doesn't cause the system to busy-wait. 3 | -------------------------------------------------------------------------------- /tests/069-field-type/src/Holder.java: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Simple class with one field. 4 | */ 5 | public class Holder { 6 | public Runnable mValue; 7 | } 8 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_DOUBLE_TO_FLOAT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/funopNarrower.S" {"instr":"fcvtsd s0, d0"} 3 | -------------------------------------------------------------------------------- /vm/compiler/template/armv5te-vfp/TEMPLATE_DOUBLE_TO_INT_VFP.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te-vfp/funopNarrower.S" {"instr":"ftosizd s0, d0"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INVOKE_VIRTUAL_QUICK_RANGE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/OP_INVOKE_VIRTUAL_QUICK.S" { "isrange":"1", "routine":"Range" } 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_DIRECT.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_DIRECT /*vB, {vD, vE, vF, vG, vA}, meth@CCCC*/) 2 | GOTO_invoke(invokeDirect, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_STATIC.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_STATIC /*vB, {vD, vE, vF, vG, vA}, meth@CCCC*/) 2 | GOTO_invoke(invokeStatic, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_SUPER.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_SUPER /*vB, {vD, vE, vF, vG, vA}, meth@CCCC*/) 2 | GOTO_invoke(invokeSuper, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %verify "negative value is sign-extended" 3 | %include "x86/OP_IGET.S" { "load":"movsbl", "sqnum":"2" } 4 | -------------------------------------------------------------------------------- /dx/tests/106-verify-object-ops/info.txt: -------------------------------------------------------------------------------- 1 | This tests that the various "objecty" opcodes verify that their 2 | arguments are actually of the appropriate types. 3 | -------------------------------------------------------------------------------- /tests/017-float/expected.txt: -------------------------------------------------------------------------------- 1 | base values: d=3.1415926535 f=3.1415927 2 | base values: d=3.1415926535 f=3.1415927 3 | base values: f=3.1415927 d=3.1415926535 4 | -------------------------------------------------------------------------------- /tests/031-class-attributes/src/Main.java: -------------------------------------------------------------------------------- 1 | public class Main { 2 | public static void main(String[] args) { 3 | ClassAttrs.main(); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/070-nio-buffer/expected.txt: -------------------------------------------------------------------------------- 1 | Got expected buffer overflow exception 2 | Got expected out-of-bounds exception 3 | Got expected buffer overflow exception 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_ADD_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"preinstr":"adds r0, r0, r2", "instr":"adc r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_AND_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"preinstr":"and r0, r0, r2", "instr":"and r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INT_TO_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"preinstr":"mov r0, r0, asl #24", "instr":"mov r0, r0, asr #24"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INT_TO_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"preinstr":"mov r0, r0, asl #16", "instr":"mov r0, r0, lsr #16"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_INT_TO_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/unop.S" {"preinstr":"mov r0, r0, asl #16", "instr":"mov r0, r0, asr #16"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_OR_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"preinstr":"orr r0, r0, r2", "instr":"orr r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SHL_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asl r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SHL_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asl r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SHR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SHR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_SUB_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"preinstr":"subs r0, r0, r2", "instr":"sbc r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_USHR_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopLit8.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, lsr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_XOR_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binopWide2addr.S" {"preinstr":"eor r0, r0, r2", "instr":"eor r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_ADD_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"preinstr":"adds r0, r0, r2", "instr":"adc r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_AND_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"preinstr":"and r0, r0, r2", "instr":"and r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_OR_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"preinstr":"orr r0, r0, r2", "instr":"orr r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_SHL_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asl r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_SHR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, asr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_SUB_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"preinstr":"subs r0, r0, r2", "instr":"sbc r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_XOR_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binopWide2addr.S" {"preinstr":"eor r0, r0, r2", "instr":"eor r1, r1, r3"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_SUPER_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_SUPER_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 | GOTO_invoke(invokeSuper, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_VIRTUAL.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_VIRTUAL /*vB, {vD, vE, vF, vG, vA}, meth@CCCC*/) 2 | GOTO_invoke(invokeVirtual, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %verify "large values are not sign-extended" 3 | %include "x86/OP_IGET.S" { "load":"movzwl", "sqnum":"3" } 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_IGET_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %verify "negative value is sign-extended" 3 | %include "x86/OP_IGET.S" { "load":"movswl", "sqnum":"4" } 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_LONG_TO_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* we ignore the high word, making this equivalent to a 32-bit reg move */ 3 | %include "x86/OP_MOVE.S" 4 | -------------------------------------------------------------------------------- /dx/tests/098-dex-jsr-ret-throw/ViewDebug$ViewServer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/dx/tests/098-dex-jsr-ret-throw/ViewDebug$ViewServer.class -------------------------------------------------------------------------------- /tests/057-iteration-performance/info.txt: -------------------------------------------------------------------------------- 1 | This is a performance test of various iterator uses. To see the numbers, 2 | invoke this test with the "--timing" option. 3 | -------------------------------------------------------------------------------- /tests/066-mismatched-super/info.txt: -------------------------------------------------------------------------------- 1 | This tests what happens when class A extends abstract class B, but somebody 2 | turns B into an interface without rebuilding A. 3 | -------------------------------------------------------------------------------- /tests/068-classloader/src/Useless.java: -------------------------------------------------------------------------------- 1 | 2 | public class Useless implements ICommon { 3 | public DoubledImplement getDoubledInstance() { return null; } 4 | } 5 | -------------------------------------------------------------------------------- /tests/077-method-override/info.txt: -------------------------------------------------------------------------------- 1 | Test various forms of method overrides, including some not allowed by the 2 | compiler but possible with separate compilation. 3 | -------------------------------------------------------------------------------- /tests/084-old-style-inner-class/info.txt: -------------------------------------------------------------------------------- 1 | Test that the conversion of an old-style (pre-1.5) inner class results 2 | in a loss of inner class reflection information. 3 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_LONG_TO_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* we ignore the high word, making this equivalent to a 32-bit reg move */ 3 | %include "armv5te/OP_MOVE.S" 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_USHR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv5te/binop2addr.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, lsr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_USHR_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "armv6t2/binop2addr.S" {"preinstr":"and r1, r1, #31", "instr":"mov r0, r0, lsr r1"} 3 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_FILLED_NEW_ARRAY.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_FILLED_NEW_ARRAY /*vB, {vD, vE, vF, vG, vA}, class@CCCC*/) 2 | GOTO_invoke(filledNewArray, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_DIRECT_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_DIRECT_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 | GOTO_invoke(invokeDirect, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_INTERFACE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_INTERFACE /*vB, {vD, vE, vF, vG, vA}, meth@CCCC*/) 2 | GOTO_invoke(invokeInterface, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_STATIC_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_STATIC_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 | GOTO_invoke(invokeStatic, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /dx/tests/107-verify-stack-ops/info.txt: -------------------------------------------------------------------------------- 1 | This tests that the various stack manipulation opcodes verify that their 2 | arguments are actually of the appropriate categories. 3 | -------------------------------------------------------------------------------- /tests/042-new-instance/src/otherpackage/PackageAccess.java: -------------------------------------------------------------------------------- 1 | package otherpackage; 2 | 3 | class PackageAccess { 4 | /*package*/ PackageAccess() { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_SUPER_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_SUPER_QUICK /*vB, {vD, vE, vF, vG, vA}, meth@CCCC*/) 2 | GOTO_invoke(invokeSuperQuick, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_VIRTUAL_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_VIRTUAL_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 | GOTO_invoke(invokeVirtual, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_OR_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide2addr.S" {"instr1":"orl %eax,(rFP,rINST_FULL,4)","instr2":"orl %ecx,4(rFP,rINST_FULL,4)"} 3 | -------------------------------------------------------------------------------- /tests/065-mismatched-implements/info.txt: -------------------------------------------------------------------------------- 1 | This tests what happens when class A implements interface B, but somebody 2 | turns B into an abstract class without rebuilding A. 3 | -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingPairCrossThreadTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingPairCrossThreadTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingSoloCrossThreadTrace -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* must be "mul r0, r1, r0" -- "r0, r0, r1" is illegal */ 3 | %include "armv5te/binop.S" {"instr":"mul r0, r1, r0"} 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_FILLED_NEW_ARRAY_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_FILLED_NEW_ARRAY_RANGE /*{vCCCC..v(CCCC+AA-1)}, class@BBBB*/) 2 | GOTO_invoke(filledNewArray, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_INTERFACE_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_INTERFACE_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 | GOTO_invoke(invokeInterface, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_VIRTUAL_QUICK.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_VIRTUAL_QUICK /*vB, {vD, vE, vF, vG, vA}, meth@CCCC*/) 2 | GOTO_invoke(invokeVirtualQuick, false); 3 | OP_END 4 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_ADD_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide2addr.S" {"instr1":"addl %eax,(rFP,rINST_FULL,4)","instr2":"adcl %ecx,4(rFP,rINST_FULL,4)"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_AND_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide2addr.S" {"instr1":"andl %eax,(rFP,rINST_FULL,4)","instr2":"andl %ecx,4(rFP,rINST_FULL,4)"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_SUB_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide2addr.S" {"instr1":"subl %eax,(rFP,rINST_FULL,4)","instr2":"sbbl %ecx,4(rFP,rINST_FULL,4)"} 3 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_XOR_LONG_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %include "x86/binopWide2addr.S" {"instr1":"xorl %eax,(rFP,rINST_FULL,4)","instr2":"xorl %ecx,4(rFP,rINST_FULL,4)"} 3 | -------------------------------------------------------------------------------- /tests/042-new-instance/info.txt: -------------------------------------------------------------------------------- 1 | Test various permutations of Class.newInstance and Constructor.newInstance, 2 | looking for correct handling of access rights and abstract classes. 3 | -------------------------------------------------------------------------------- /tests/078-polymorphic-virtual/info.txt: -------------------------------------------------------------------------------- 1 | Stress test predicted chaining for overloaded virtual callsite with 3 resolved 2 | calless invoked 10,000,000 times each in three threads. 3 | -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingPairSingleThreadTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingPairSingleThreadTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingSoloSingleThreadTrace -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IPUT_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | @include "armv5te/OP_IPUT.S" { "store":"strb", "sqnum":"2" } 3 | %include "armv5te/OP_IPUT.S" { "store":"str", "sqnum":"2" } 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IPUT_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | @include "armv5te/OP_IPUT.S" { "store":"strh", "sqnum":"3" } 3 | %include "armv5te/OP_IPUT.S" { "store":"str", "sqnum":"3" } 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_FLOAT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* EABI doesn't define a float remainder function, but libm does */ 3 | %include "armv5te/binop.S" {"instr":"bl fmodf"} 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_SUPER_QUICK_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_SUPER_QUICK_RANGE /*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 | GOTO_invoke(invokeSuperQuick, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /dx/tests/030-minimal-jasmin/info.txt: -------------------------------------------------------------------------------- 1 | This test is just a minimal test involving assembling a jasmin source 2 | file and then dumping it. It doesn't test any features in particular. 3 | -------------------------------------------------------------------------------- /tests/003-omnibus-opcodes/src/UnresClass.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Unresolved class. 3 | * 4 | * "happy" version. 5 | */ 6 | 7 | public class UnresClass { 8 | int foo; 9 | } 10 | -------------------------------------------------------------------------------- /tests/009-instanceof2/expected.txt: -------------------------------------------------------------------------------- 1 | instanceof Serializable = true 2 | instanceof Cloneable = true 3 | instanceof Runnable = false 4 | aaOkay (false) = false 5 | bbOkay (true) = true 6 | -------------------------------------------------------------------------------- /tests/039-join-main/expected.txt: -------------------------------------------------------------------------------- 1 | Starting thread 'Joiner' 2 | @ JoinMainSub running 3 | JoinMain starter returning 4 | @ JoinMainSub successfully joined main 5 | @ JoinMainSub bailing 6 | -------------------------------------------------------------------------------- /tests/061-out-of-memory/expected.txt: -------------------------------------------------------------------------------- 1 | tests beginning 2 | testOomeLarge beginning 3 | testOomeLarge succeeded 4 | testOomeSmall beginning 5 | testOomeSmall succeeded 6 | tests succeeded 7 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | @include "armv5te/OP_IGET.S" { "load":"ldrb", "sqnum":"1" } 3 | %include "armv5te/OP_IGET.S" { "load":"ldr", "sqnum":"1" } 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IPUT_BOOLEAN.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | @include "armv5te/OP_IPUT.S" { "store":"strb", "sqnum":"1" } 3 | %include "armv5te/OP_IPUT.S" { "store":"str", "sqnum":"1" } 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IPUT_SHORT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | @include "armv5te/OP_IPUT.S" { "store":"strh", "sqnum":"4" } 3 | %include "armv5te/OP_IPUT.S" { "store":"str", "sqnum":"4" } 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* must be "mul r0, r1, r0" -- "r0, r0, r1" is illegal */ 3 | %include "armv5te/binop2addr.S" {"instr":"mul r0, r1, r0"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* must be "mul r0, r1, r0" -- "r0, r0, r1" is illegal */ 3 | %include "armv5te/binopLit16.S" {"instr":"mul r0, r1, r0"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_MUL_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* must be "mul r0, r1, r0" -- "r0, r0, r1" is illegal */ 3 | %include "armv5te/binopLit8.S" {"instr":"mul r0, r1, r0"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_DOUBLE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* EABI doesn't define a double remainder function, but libm does */ 3 | %include "armv5te/binopWide.S" {"instr":"bl fmod"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_MUL_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* must be "mul r0, r1, r0" -- "r0, r0, r1" is illegal */ 3 | %include "armv6t2/binop2addr.S" {"instr":"mul r0, r1, r0"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_MUL_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* must be "mul r0, r1, r0" -- "r0, r0, r1" is illegal */ 3 | %include "armv6t2/binopLit16.S" {"instr":"mul r0, r1, r0"} 4 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_INVOKE_VIRTUAL_QUICK_RANGE.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_INVOKE_VIRTUAL_QUICK_RANGE/*{vCCCC..v(CCCC+AA-1)}, meth@BBBB*/) 2 | GOTO_invoke(invokeVirtualQuick, true); 3 | OP_END 4 | -------------------------------------------------------------------------------- /tests/002-sleep/info.txt: -------------------------------------------------------------------------------- 1 | Test that Thread.sleep() operates reasonably. This test is actually 2 | mostly meant as an easy thing to modify in order to test other things 3 | in an ad-hoc way. 4 | -------------------------------------------------------------------------------- /tests/052-verifier-fun/src/BlahOne.java: -------------------------------------------------------------------------------- 1 | public class BlahOne extends Blah implements BlahFeature { 2 | public void doStuff() { 3 | System.out.println("BlahOne"); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/052-verifier-fun/src/BlahTwo.java: -------------------------------------------------------------------------------- 1 | public class BlahTwo extends Blah implements BlahFeature { 2 | public void doStuff() { 3 | System.out.println("BlahTwo"); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /dx/tests/104-verify-return-ops/info.txt: -------------------------------------------------------------------------------- 1 | This tests that return opcodes verify that their arguments are actually of 2 | the appropriate types and that the opcode matches the method signature. 3 | -------------------------------------------------------------------------------- /tests/066-mismatched-super/src2/Defs.java: -------------------------------------------------------------------------------- 1 | // Copyright 2008 The Android Open Source Project 2 | 3 | public interface Defs { 4 | public void func(); 5 | 6 | // func2 not defined 7 | } 8 | -------------------------------------------------------------------------------- /tests/071-dexfile/info.txt: -------------------------------------------------------------------------------- 1 | Exercise some Dalvik-specific DEX file features. This is not expected to 2 | work on other VMs. 3 | 4 | NOTE: the test requires that /sdcard exists and is writable. 5 | -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testFilters: -------------------------------------------------------------------------------- 1 | *FirstFilter 2 | +A.m(),B.m() 3 | +C.m() 4 | +R.m(),S.m() 5 | *SecondFilter 6 | +D.m(),E.m() 7 | +F.m() 8 | *RepeatedFilter 9 | +R.m(),S.m() 10 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* EABI doesn't define a float remainder function, but libm does */ 3 | %include "armv5te/binop2addr.S" {"instr":"bl fmodf"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_RSUB_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* this op is "rsub-int", but can be thought of as "rsub-int/lit16" */ 3 | %include "armv5te/binopLit16.S" {"instr":"rsb r0, r0, r1"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_REM_FLOAT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* EABI doesn't define a float remainder function, but libm does */ 3 | %include "armv6t2/binop2addr.S" {"instr":"bl fmodf"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_RSUB_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* this op is "rsub-int", but can be thought of as "rsub-int/lit16" */ 3 | %include "armv6t2/binopLit16.S" {"instr":"rsb r0, r0, r1"} 4 | -------------------------------------------------------------------------------- /dx/tests/030-minimal-jasmin/expected.txt: -------------------------------------------------------------------------------- 1 | Generated: ./blort.class 2 | 0000: aload_0 // 00 3 | 0001: dup 4 | 0002: dup 5 | 0003: astore_1 // 01 6 | 0004: pop2 7 | 0005: return 8 | -------------------------------------------------------------------------------- /tests/004-annotations/src/android/test/anno/INoted.java: -------------------------------------------------------------------------------- 1 | package android.test.anno; 2 | 3 | @AnnoSimpleType2 4 | public interface INoted { 5 | @AnnoSimpleMethod 6 | public int bar(); 7 | } 8 | -------------------------------------------------------------------------------- /tests/065-mismatched-implements/src/Defs.java: -------------------------------------------------------------------------------- 1 | // Copyright 2008 The Android Open Source Project 2 | 3 | public interface Defs { 4 | public void func(); 5 | 6 | // func2 not defined 7 | } 8 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* EABI doesn't define a double remainder function, but libm does */ 3 | %include "armv5te/binopWide2addr.S" {"instr":"bl fmod"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_REM_DOUBLE_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* EABI doesn't define a double remainder function, but libm does */ 3 | %include "armv6t2/binopWide2addr.S" {"instr":"bl fmod"} 4 | -------------------------------------------------------------------------------- /dx/tests/100-local-mismatch/info.txt: -------------------------------------------------------------------------------- 1 | This is a smoke test that makes sure that dx complains when a local 2 | variable table entry fundamentally disagrees with an instruction that 3 | accesses that local. 4 | -------------------------------------------------------------------------------- /tests/024-illegal-access/info.txt: -------------------------------------------------------------------------------- 1 | Test that an attempt to access a private field results in a verification 2 | error. Also try to access a non-public class in a different package with 3 | "instanceof". 4 | -------------------------------------------------------------------------------- /tests/026-access/src/otherpackage/PublicAccess.java: -------------------------------------------------------------------------------- 1 | package otherpackage; 2 | 3 | public class PublicAccess { 4 | static public void main() { 5 | System.out.println("Blort."); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /dx/tests/101-verify-wide-math/info.txt: -------------------------------------------------------------------------------- 1 | This tests that wide-taking (category-2) "calculation" opcodes (math 2 | ops, comparisons, etc.) verify that their arguments are actually of 3 | the appropriate types. 4 | -------------------------------------------------------------------------------- /tests/008-instanceof/expected.txt: -------------------------------------------------------------------------------- 1 | iface1.mFloaty = 5.0 wahoo 2 | aa.mFloaty = 5.0 wahoo 3 | bb.mWhoami = ImplB! 4 | aaOkay (false) = false 5 | bbOkay (true) = true 6 | Caught a ClassCastException (expected) 7 | -------------------------------------------------------------------------------- /tests/066-mismatched-super/src/Base.java: -------------------------------------------------------------------------------- 1 | // Copyright 2008 The Android Open Source Project 2 | 3 | public class Base extends Defs { 4 | // no need to implement func(), provided by abstract class 5 | }; 6 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_INT.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* idivmod returns quotient in r0 and remainder in r1 */ 3 | %include "armv5te/binop.S" {"instr":"bl __aeabi_idivmod", "result":"r1", "chkzero":"1"} 4 | -------------------------------------------------------------------------------- /tests/004-annotations/src/Main.java: -------------------------------------------------------------------------------- 1 | import android.test.anno.TestAnnotations; 2 | 3 | public class Main { 4 | static public void main(String[] args) { 5 | TestAnnotations.main(args); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/030-bad-finalizer/info.txt: -------------------------------------------------------------------------------- 1 | The finalizer for this class never finishes. Dalvik is expected to detect 2 | this situation and abort the VM (so you will likely see a "deadd00d" 3 | crash in the log output). 4 | -------------------------------------------------------------------------------- /tests/032-concrete-sub/expected.txt: -------------------------------------------------------------------------------- 1 | calling abs.doStuff() 2 | In AbstractBase.doStuff (src2) 3 | Got expected exception from abs.doStuff(). 4 | class modifiers=1025 5 | meth modifiers=1025 6 | Got expected failure 7 | -------------------------------------------------------------------------------- /tests/038-inner-null/expected.txt: -------------------------------------------------------------------------------- 1 | new Special() 2 | java.lang.NullPointerException 3 | at Main$Special.callInner(Main.java:17) 4 | at Main.main(Main.java:6) 5 | at dalvik.system.NativeStart.main(Native Method) 6 | -------------------------------------------------------------------------------- /tests/068-classloader/src/SimpleBase.java: -------------------------------------------------------------------------------- 1 | // Copyright 2008 The Android Open Source Project 2 | 3 | /** 4 | * Simple, public base class. 5 | */ 6 | public class SimpleBase { 7 | public SimpleBase() {} 8 | } 9 | -------------------------------------------------------------------------------- /dx/tests/102-verify-nonwide-math/info.txt: -------------------------------------------------------------------------------- 1 | This tests that non-wide-taking (category-1) "calculation" opcodes (math 2 | ops, comparisons, etc.) to verify that their arguments are actually of 3 | the appropriate types. 4 | -------------------------------------------------------------------------------- /tests/008-instanceof/src/Iface2.java: -------------------------------------------------------------------------------- 1 | // Copyright 2006 The Android Open Source Project 2 | 3 | /** 4 | * Another interface. 5 | */ 6 | public interface Iface2 { 7 | 8 | public int iFunc2(int ii); 9 | } 10 | -------------------------------------------------------------------------------- /tests/011-array-copy/src/Iface2.java: -------------------------------------------------------------------------------- 1 | // Copyright 2006 The Android Open Source Project 2 | 3 | /** 4 | * Another interface. 5 | */ 6 | public interface Iface2 { 7 | 8 | public int iFunc2(int ii); 9 | } 10 | -------------------------------------------------------------------------------- /tests/022-interface/src/Iface2.java: -------------------------------------------------------------------------------- 1 | // Copyright 2006 The Android Open Source Project 2 | 3 | /** 4 | * Another interface. 5 | */ 6 | public interface Iface2 { 7 | 8 | public int iFunc2(int ii); 9 | } 10 | -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadDiffFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointCrossThreadSameFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadDiffFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingDisjointSingleThreadSameFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingSoloSingleThread: -------------------------------------------------------------------------------- 1 | # _____ 2 | # ____|Z |____ ____ 3 | # __|C ||Z |__ 4 | # 5 | 0 1 C 6 | 2 1 Z 7 | 4 1 Z 8 | 6 1 C 9 | 6 1 Z 10 | 8 1 Z 11 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* idivmod returns quotient in r0 and remainder in r1 */ 3 | %include "armv5te/binop2addr.S" {"instr":"bl __aeabi_idivmod", "result":"r1", "chkzero":"1"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* idivmod returns quotient in r0 and remainder in r1 */ 3 | %include "armv5te/binopLit16.S" {"instr":"bl __aeabi_idivmod", "result":"r1", "chkzero":"1"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_REM_INT_LIT8.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* idivmod returns quotient in r0 and remainder in r1 */ 3 | %include "armv5te/binopLit8.S" {"instr":"bl __aeabi_idivmod", "result":"r1", "chkzero":"1"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_REM_INT_2ADDR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* idivmod returns quotient in r0 and remainder in r1 */ 3 | %include "armv6t2/binop2addr.S" {"instr":"bl __aeabi_idivmod", "result":"r1", "chkzero":"1"} 4 | -------------------------------------------------------------------------------- /vm/mterp/armv6t2/OP_REM_INT_LIT16.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* idivmod returns quotient in r0 and remainder in r1 */ 3 | %include "armv6t2/binopLit16.S" {"instr":"bl __aeabi_idivmod", "result":"r1", "chkzero":"1"} 4 | -------------------------------------------------------------------------------- /vm/mterp/cstubs/enddefs.c: -------------------------------------------------------------------------------- 1 | 2 | /* undefine "magic" name remapping */ 3 | #undef retval 4 | #undef pc 5 | #undef fp 6 | #undef curMethod 7 | #undef methodClassDex 8 | #undef self 9 | #undef debugTrackedRefStart 10 | -------------------------------------------------------------------------------- /vm/mterp/x86/OP_INVOKE_DIRECT_EMPTY.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | /* 3 | * invoke-direct-empty is a no-op in a "standard" interpreter. 4 | */ 5 | FETCH_INST_WORD(3) 6 | ADVANCE_PC(3) 7 | GOTO_NEXT 8 | -------------------------------------------------------------------------------- /dx/README.txt: -------------------------------------------------------------------------------- 1 | Home of Dalvik eXchange, the thing that takes in class files and 2 | reformulates them for consumption in the VM. It also does a few other 3 | things; use "dx --help" to see a modicum of self-documentation. 4 | -------------------------------------------------------------------------------- /dx/src/com/android/dx/rop/code/package.html: -------------------------------------------------------------------------------- 1 | 2 |

Classes relating to a register-based opcode system.

3 | 4 |

PACKAGES USED: 5 |

8 | 9 | -------------------------------------------------------------------------------- /dx/tests/096-dex-giant-catch/expected.txt: -------------------------------------------------------------------------------- 1 | catches 2 | try 0024..00010017 3 | catch java.lang.RuntimeException -> 00011260 4 | try 0001003b..0001125f 5 | catch java.lang.RuntimeException -> 00011260 6 | -------------------------------------------------------------------------------- /tests/009-instanceof2/src/Iface2.java: -------------------------------------------------------------------------------- 1 | // Copyright 2006 The Android Open Source Project 2 | 3 | /** 4 | * Another interface. 5 | */ 6 | public interface Iface2 { 7 | 8 | public int iFunc2(int ii); 9 | } 10 | -------------------------------------------------------------------------------- /tests/053-wait-some/expected.txt: -------------------------------------------------------------------------------- 1 | Caught expected exception on neg arg 2 | Waiting for 200ms... 3 | Waiting for 500ms... 4 | Waiting for 1000ms... 5 | Waiting for 2000ms... 6 | Waiting for 3500ms... 7 | Waiting for 8000ms... 8 | -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingPairSingleThread: -------------------------------------------------------------------------------- 1 | # ____ ____ ____ ____ 2 | # __|A ||Z ||B ||Z |__ 3 | # 4 | 0 1 A 5 | 2 1 A 6 | 2 1 Z 7 | 4 1 Z 8 | 4 1 B 9 | 6 1 B 10 | 6 1 Z 11 | 8 1 Z 12 | -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_BYTE.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %verify "negative value is sign-extended" 3 | @include "armv5te/OP_IGET.S" { "load":"ldrsb", "sqnum":"2" } 4 | %include "armv5te/OP_IGET.S" { "load":"ldr", "sqnum":"2" } 5 | -------------------------------------------------------------------------------- /vm/mterp/c/OP_RETURN_VOID.c: -------------------------------------------------------------------------------- 1 | HANDLE_OPCODE(OP_RETURN_VOID /**/) 2 | ILOGV("|return-void"); 3 | #ifndef NDEBUG 4 | retval.j = 0xababababULL; // placate valgrind 5 | #endif 6 | GOTO_returnFromMethod(); 7 | OP_END 8 | -------------------------------------------------------------------------------- /dx/tests/099-dex-core-library-error/info.txt: -------------------------------------------------------------------------------- 1 | This tests that attempts to define core classes fail and that 2 | an attempt to define a legal javax.* class succeeds. (Only *some* 3 | javax packages are considered to be off-limits.) 4 | -------------------------------------------------------------------------------- /tests/003-omnibus-opcodes/src2/UnresStuff.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Unresolved classes / fields / methods in a resolved class. 3 | * 4 | * "happy" version. 5 | */ 6 | 7 | public class UnresStuff { 8 | public int x; 9 | } 10 | -------------------------------------------------------------------------------- /tests/049-show-object/expected.txt: -------------------------------------------------------------------------------- 1 | d is 3.1415 2 | class: class [Ljava.lang.Object; 3 | 0: null 4 | 1: null 5 | 2: null 6 | 3: null 7 | 4: null 8 | class: class [Ljava.lang.String; 9 | 0: hey 10 | 1: you 11 | 2: there 12 | -------------------------------------------------------------------------------- /tests/065-mismatched-implements/src/Base.java: -------------------------------------------------------------------------------- 1 | // Copyright 2008 The Android Open Source Project 2 | 3 | public class Base implements Defs { 4 | public void func() { 5 | System.out.println("whee"); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/068-classloader/src/ICommon.java: -------------------------------------------------------------------------------- 1 | // Copyright 2008 The Android Open Source Project 2 | 3 | /** 4 | * Common interface. 5 | */ 6 | public interface ICommon { 7 | public DoubledImplement getDoubledInstance(); 8 | } 9 | -------------------------------------------------------------------------------- /tests/068-classloader/src/InaccessibleBase.java: -------------------------------------------------------------------------------- 1 | // Copyright 2008 The Android Open Source Project 2 | 3 | /** 4 | * Non-public base class, inaccessible from alternate class loader. 5 | */ 6 | class InaccessibleBase { 7 | } 8 | -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadDiffFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapCrossThreadSameFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadDiffFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingNestedOverlapSingleThreadSameFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadDiffFilterSameKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterDiffKeysTrace -------------------------------------------------------------------------------- /tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysTrace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foxsen/dalvik/master/tools/dmtracedump/tests/filters/testWaitingPartialOverlapCrossThreadSameFilterSameKeysTrace -------------------------------------------------------------------------------- /vm/mterp/armv5te/OP_IGET_CHAR.S: -------------------------------------------------------------------------------- 1 | %verify "executed" 2 | %verify "large values are not sign-extended" 3 | @include "armv5te/OP_IGET.S" { "load":"ldrh", "sqnum":"3" } 4 | %include "armv5te/OP_IGET.S" { "load":"ldr", "sqnum":"3" } 5 | --------------------------------------------------------------------------------