OSDN Git Service
Vladimir Marko [Mon, 7 Apr 2014 18:10:57 +0000 (18:10 +0000)]
am
50ca506e: Merge "Inlining synthetic accessors."
* commit '
50ca506e9191c2eafcf9564528712020f9531dc4':
Inlining synthetic accessors.
Vladimir Marko [Mon, 7 Apr 2014 18:03:26 +0000 (18:03 +0000)]
Merge "Inlining synthetic accessors."
Dave Allison [Mon, 7 Apr 2014 17:42:56 +0000 (17:42 +0000)]
am
12c0273f: Merge "Use trampolines for calls to helpers"
* commit '
12c0273fd394d72ae93424784b1450daea417472':
Use trampolines for calls to helpers
Dave Allison [Mon, 7 Apr 2014 17:34:12 +0000 (17:34 +0000)]
Merge "Use trampolines for calls to helpers"
Vladimir Marko [Mon, 7 Apr 2014 17:22:43 +0000 (17:22 +0000)]
am
1415359a: Merge "Inlining setters that return one of their arguments."
* commit '
1415359a4ca80a78507173103274a06cd85d223d':
Inlining setters that return one of their arguments.
Vladimir Marko [Mon, 7 Apr 2014 17:13:53 +0000 (17:13 +0000)]
Merge "Inlining setters that return one of their arguments."
Vladimir Marko [Wed, 2 Apr 2014 14:24:05 +0000 (15:24 +0100)]
Inlining synthetic accessors.
Bug:
11549140
Change-Id: I0d6a38c51887f55563414c240ac42ee64bdb5426
Vladimir Marko [Fri, 4 Apr 2014 13:52:53 +0000 (14:52 +0100)]
Inlining setters that return one of their arguments.
Useful for builder classes and synthetic setters. The latter
are not inlined yet since they are static methods, i.e. they
don't use "this" as the object for IPUT.
Change-Id: I3d34156c3629b837a0a95ccc34a8aae3f4a636d5
Nicolas Geoffray [Mon, 7 Apr 2014 14:44:14 +0000 (14:44 +0000)]
am
427ca38b: Merge "Add support for taking parameters in optimizing compiler."
* commit '
427ca38b0a6c6fd7dc0dbb380619e2b91b56cf1c':
Add support for taking parameters in optimizing compiler.
Nicolas Geoffray [Mon, 7 Apr 2014 14:35:31 +0000 (14:35 +0000)]
Merge "Add support for taking parameters in optimizing compiler."
Nicolas Geoffray [Mon, 7 Apr 2014 12:20:42 +0000 (13:20 +0100)]
Add support for taking parameters in optimizing compiler.
- Fix stack layout to mimic Quick's.
- Implement some sub operations.
Change-Id: I8cf75a4d29b662381a64f02c0bc61d859482fc4e
Sebastien Hertz [Mon, 7 Apr 2014 08:49:58 +0000 (08:49 +0000)]
am
7ab4e5c5: Merge "JDWP request is parsed incorrectly due to junk in the descriptor"
* commit '
7ab4e5c5288e04b7beb6d8ddfd5e8bf878002732':
JDWP request is parsed incorrectly due to junk in the descriptor
Sebastien Hertz [Mon, 7 Apr 2014 08:23:33 +0000 (08:23 +0000)]
Merge "JDWP request is parsed incorrectly due to junk in the descriptor"
nikolay serdjuk [Mon, 7 Apr 2014 06:54:24 +0000 (13:54 +0700)]
JDWP request is parsed incorrectly due to junk in the descriptor
The ClassHelper object is created and deleted on the same line.
Therefore it is wrong to refer to any class members of the object in
the next line. Any references to the object and the object itself
must have the same live ranges.
Change-Id: I792d7baa3828b0389254f2941705e006cab092cd
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>
Mathieu Chartier [Sat, 5 Apr 2014 01:35:54 +0000 (01:35 +0000)]
am
b70b09f6: Merge "Revert "Inlining setters that return one of their arguments.""
* commit '
b70b09f6cc1f1fbbf604da7b6b1ea5f74e43571c':
Revert "Inlining setters that return one of their arguments."
Mathieu Chartier [Sat, 5 Apr 2014 01:35:53 +0000 (01:35 +0000)]
am
90247d17: Merge "Revert "Inlining synthetic accessors.""
* commit '
90247d17f7db0052c20515d363fe505be4fcaf89':
Revert "Inlining synthetic accessors."
Mathieu Chartier [Sat, 5 Apr 2014 01:29:36 +0000 (01:29 +0000)]
Merge "Revert "Inlining setters that return one of their arguments.""
Mathieu Chartier [Sat, 5 Apr 2014 01:29:02 +0000 (01:29 +0000)]
Merge "Revert "Inlining synthetic accessors.""
Mathieu Chartier [Sat, 5 Apr 2014 01:02:08 +0000 (18:02 -0700)]
Revert "Inlining setters that return one of their arguments."
Bug:
13817614
This reverts commit
8e40c3e662d852da87b6bcfe79355f96ab9e91c7.
Change-Id: Ia7ed2d933514781150b2e0b9855244e383c60187
Mathieu Chartier [Sat, 5 Apr 2014 01:02:04 +0000 (18:02 -0700)]
Revert "Inlining synthetic accessors."
This reverts commit
505ebb0e7b42e7facc8354515b06333ee8b84b10.
Andreas Gampe [Fri, 4 Apr 2014 23:47:14 +0000 (23:47 +0000)]
am
818b4cf7: Merge "Fix wrong handling of Generic JNI not finding native method."
* commit '
818b4cf753d6e8a294f0fbe2e3bd9168eea9f762':
Fix wrong handling of Generic JNI not finding native method.
Andreas Gampe [Fri, 4 Apr 2014 23:34:23 +0000 (23:34 +0000)]
Merge "Fix wrong handling of Generic JNI not finding native method."
Andreas Gampe [Fri, 4 Apr 2014 23:20:13 +0000 (16:20 -0700)]
Fix wrong handling of Generic JNI not finding native method.
Code did not properly call JNIMethodEnd, such that locks etc
where not correctly handled.
Add a test case to jni_compiler_test.
Change-Id: If2d5c628517d65a56dd6bb5c4cabdff77c7664a1
Mathieu Chartier [Fri, 4 Apr 2014 23:28:04 +0000 (23:28 +0000)]
am
e8b4bbce: Merge "Fix using kArm instead of kThumb2."
* commit '
e8b4bbcef44f7fe76896850b2f5750cd46b1ade0':
Fix using kArm instead of kThumb2.
Mathieu Chartier [Fri, 4 Apr 2014 23:16:12 +0000 (23:16 +0000)]
Merge "Fix using kArm instead of kThumb2."
Mathieu Chartier [Fri, 4 Apr 2014 23:10:05 +0000 (16:10 -0700)]
Fix using kArm instead of kThumb2.
Change-Id: I0f3bf93b38d910bc57d017693675829b6a39bc18
Dave Allison [Wed, 19 Feb 2014 22:05:39 +0000 (14:05 -0800)]
Use trampolines for calls to helpers
This is an ARM specific optimization to the compiler
that uses trampoline islands to make calls to runtime
helper functions. The intention is to reduce the size
of the generated code (by 2 bytes per call) without
affecting performance.
By default this is on when generating an OAT file. It is
off when compiling to memory.
To switch this off in dex2oat, use the command line option:
--no-helper-trampolines
Enhances disassembler to print the trampoline entry on the
BL instruction like this:
0xb6a850c0:
f7ffff9e bl -196 (0xb6a85000) ; pTestSuspend
Bug:
12607709
Change-Id: I9202bdb7cf21252ad807bd48701f1f6ce8e3d0fe
Ian Rogers [Fri, 4 Apr 2014 22:39:30 +0000 (22:39 +0000)]
am
97a332b4: Merge "art_quick_lock_object uses registers incorrectly"
* commit '
97a332b4476d5a2b4ad0650dacc6bfcff882fc57':
art_quick_lock_object uses registers incorrectly
Ian Rogers [Fri, 4 Apr 2014 22:29:04 +0000 (22:29 +0000)]
Merge "art_quick_lock_object uses registers incorrectly"
Ian Rogers [Fri, 4 Apr 2014 22:23:37 +0000 (22:23 +0000)]
am
45157a41: Merge "ARM: enable optimisation for easy multiply, add modulus pattern."
* commit '
45157a41b6c0ac9f73aeeb1f064c2270a6a68a60':
ARM: enable optimisation for easy multiply, add modulus pattern.
Andreas Gampe [Fri, 4 Apr 2014 22:20:02 +0000 (22:20 +0000)]
am
312d70f1: Merge "Check the machine type of an ELF file when loading."
* commit '
312d70f1f01ff0e8ef7dfd0ccb4a1c360c74d0c4':
Check the machine type of an ELF file when loading.
Ian Rogers [Fri, 4 Apr 2014 22:13:22 +0000 (22:13 +0000)]
Merge "ARM: enable optimisation for easy multiply, add modulus pattern."
Andreas Gampe [Fri, 4 Apr 2014 22:08:03 +0000 (22:08 +0000)]
Merge "Check the machine type of an ELF file when loading."
Andreas Gampe [Fri, 4 Apr 2014 00:50:24 +0000 (17:50 -0700)]
Check the machine type of an ELF file when loading.
This ensures that we reject wrong target ELF files,
and should result in a recompile for the right
target.
Change-Id: I898dddc4f2bb9b1607a7436083d0ba7619b6007b
Mathieu Chartier [Fri, 4 Apr 2014 18:45:24 +0000 (18:45 +0000)]
am
ebe5250f: Merge "Improve invalid root dumping."
* commit '
ebe5250f6162515c999f7966a918b1f86bb67396':
Improve invalid root dumping.
Mathieu Chartier [Fri, 4 Apr 2014 18:37:41 +0000 (18:37 +0000)]
Merge "Improve invalid root dumping."
Mathieu Chartier [Fri, 4 Apr 2014 18:09:41 +0000 (11:09 -0700)]
Improve invalid root dumping.
The invalid root dumping now attempts to print the root type.
Change-Id: Ie821296d569f34909ba6e2705f5c347cd2143a3a
Dave Allison [Fri, 4 Apr 2014 17:32:09 +0000 (17:32 +0000)]
am
09379fd9: Merge "Disable use of R4 as a promotable register"
* commit '
09379fd9f20e25ee71687e2c60f6a84c9ede8cd6':
Disable use of R4 as a promotable register
Vladimir Marko [Fri, 4 Apr 2014 17:26:40 +0000 (17:26 +0000)]
am
54f192ca: Merge "Inlining synthetic accessors."
* commit '
54f192cac80f6dd323be29bd7192898626ba2b01':
Inlining synthetic accessors.
Dave Allison [Fri, 4 Apr 2014 17:25:33 +0000 (17:25 +0000)]
Merge "Disable use of R4 as a promotable register"
Vladimir Marko [Fri, 4 Apr 2014 17:19:02 +0000 (17:19 +0000)]
Merge "Inlining synthetic accessors."
Vladimir Marko [Fri, 4 Apr 2014 16:51:38 +0000 (16:51 +0000)]
am
34df691e: Merge "Inlining setters that return one of their arguments."
* commit '
34df691e64a6491e7312a850a1ad255e4cf02702':
Inlining setters that return one of their arguments.
Vladimir Marko [Fri, 4 Apr 2014 16:42:17 +0000 (16:42 +0000)]
Merge "Inlining setters that return one of their arguments."
Vladimir Marko [Wed, 2 Apr 2014 14:24:05 +0000 (15:24 +0100)]
Inlining synthetic accessors.
Bug:
11549140
Change-Id: Ie0034a6840b1beaa3df92f26bf9d315119c81e34
Sebastien Hertz [Fri, 4 Apr 2014 15:19:24 +0000 (15:19 +0000)]
am
6cea2a6c: Merge "Re-enable DEX-to-DEX compilation path"
* commit '
6cea2a6c42d3a4871e3b64fe55abcb5ffc8f09de':
Re-enable DEX-to-DEX compilation path
Vladimir Marko [Fri, 4 Apr 2014 13:52:53 +0000 (14:52 +0100)]
Inlining setters that return one of their arguments.
Useful for builder classes and synthetic setters. The latter
are not inlined yet since they are static methods, i.e. they
don't use "this" as the object for IPUT.
Change-Id: I946cf570195be83ecec5fb32851bcaefad45f8a5
Sebastien Hertz [Fri, 4 Apr 2014 15:07:26 +0000 (15:07 +0000)]
Merge "Re-enable DEX-to-DEX compilation path"
Sebastien Hertz [Fri, 4 Apr 2014 13:59:53 +0000 (15:59 +0200)]
Re-enable DEX-to-DEX compilation path
Bug:
13807032
Change-Id: I6de7adb81a0f955a93257b83db9ad689ebcd90ad
Bill Buzbee [Fri, 4 Apr 2014 14:11:58 +0000 (14:11 +0000)]
am
764c798b: Merge "Fix LoadValueWide to not call MarkLive for high reg that is equal to low reg"
* commit '
764c798b57b7baa04885fcdf5eba5708a01b9edc':
Fix LoadValueWide to not call MarkLive for high reg that is equal to low reg
Bill Buzbee [Fri, 4 Apr 2014 14:00:12 +0000 (14:00 +0000)]
Merge "Fix LoadValueWide to not call MarkLive for high reg that is equal to low reg"
Vladimir Marko [Fri, 4 Apr 2014 13:25:40 +0000 (13:25 +0000)]
am
09dfce73: Merge "Clean up special method inlining."
* commit '
09dfce73c4e849afda37035146dd2932220708d3':
Clean up special method inlining.
Vladimir Marko [Fri, 4 Apr 2014 13:18:51 +0000 (13:18 +0000)]
Merge "Clean up special method inlining."
Vladimir Marko [Fri, 4 Apr 2014 11:37:07 +0000 (12:37 +0100)]
Clean up special method inlining.
Mark inlined getter/setter INVOKEs as NOP to allow implicit
null checks (SIGSEGV-based) rather than the explicit checks
in GenInvoke().
Avoid inlining wide setter and returning wide argument if
the wide source is not in consecutive dalvik registers in
INVOKE. This is valid dalvik bytecode and we should treat it
correctly even if we're currently unaware of any tools that
would generate such INVOKEs.
Remove bogus MIR_INLINED checks from LVN.
Change-Id: I7e75a832fcf9bd0550e21b1c8b3813c6166197dd
Nicolas Geoffray [Fri, 4 Apr 2014 10:26:15 +0000 (10:26 +0000)]
am
3734bffd: Merge "Use target-specific word instead of runtime word."
* commit '
3734bffdf77e2bc293eb9722f9bd4389fbaa0d92':
Use target-specific word instead of runtime word.
Nicolas Geoffray [Fri, 4 Apr 2014 10:13:53 +0000 (10:13 +0000)]
Merge "Use target-specific word instead of runtime word."
Nicolas Geoffray [Fri, 4 Apr 2014 09:50:14 +0000 (10:50 +0100)]
Use target-specific word instead of runtime word.
Change-Id: Ia11dc3cc520a1a5c7bd017013e5699af9570ce91
Vladimir Marko [Fri, 4 Apr 2014 09:25:49 +0000 (09:25 +0000)]
am
7efad5d3: Merge "Disassemble Thumb2 shifts and more VFP instructions."
* commit '
7efad5d3a806a15166109837439f2e149031feef':
Disassemble Thumb2 shifts and more VFP instructions.
Nicolas Geoffray [Fri, 4 Apr 2014 09:25:49 +0000 (09:25 +0000)]
am
885e813e: Merge "Add support for new-instance and invoke-direct."
* commit '
885e813edc121cd8392eb066981522424480253c':
Add support for new-instance and invoke-direct.
Nicolas Geoffray [Fri, 4 Apr 2014 09:25:48 +0000 (09:25 +0000)]
am
6f31ce38: Merge "Please clang by making explicit instantiations non-static."
* commit '
6f31ce382777d82952d019908866ff28ef3bbc76':
Please clang by making explicit instantiations non-static.
Nicolas Geoffray [Fri, 4 Apr 2014 09:20:50 +0000 (09:20 +0000)]
am
839f43a4: Merge "Explicitly instantiate artInvokeCommon to please analysis tool."
* commit '
839f43a40c9fe170266f42a9726c02195c73d043':
Explicitly instantiate artInvokeCommon to please analysis tool.
Hiroshi Yamauchi [Fri, 4 Apr 2014 09:20:48 +0000 (09:20 +0000)]
am
541dd231: Merge "Insert an empty read barrier call."
* commit '
541dd231f9a7282f7fd1092349a322dc67bafaf2':
Insert an empty read barrier call.
Vladimir Marko [Fri, 4 Apr 2014 09:14:00 +0000 (09:14 +0000)]
Merge "Disassemble Thumb2 shifts and more VFP instructions."
Nicolas Geoffray [Fri, 4 Apr 2014 09:07:17 +0000 (09:07 +0000)]
Merge "Add support for new-instance and invoke-direct."
Nicolas Geoffray [Fri, 4 Apr 2014 09:06:06 +0000 (09:06 +0000)]
Merge "Please clang by making explicit instantiations non-static."
Nicolas Geoffray [Fri, 4 Apr 2014 08:55:27 +0000 (09:55 +0100)]
Please clang by making explicit instantiations non-static.
Change-Id: I4112bf62c69b4f28ca369c4bf3c626be43692afd
Nicolas Geoffray [Thu, 3 Apr 2014 17:49:58 +0000 (18:49 +0100)]
Add support for new-instance and invoke-direct.
Change-Id: I2daed646904f7711972a7da15d88be7573426932
Nicolas Geoffray [Fri, 4 Apr 2014 08:35:57 +0000 (08:35 +0000)]
Merge "Explicitly instantiate artInvokeCommon to please analysis tool."
Nicolas Geoffray [Fri, 4 Apr 2014 08:26:24 +0000 (09:26 +0100)]
Explicitly instantiate artInvokeCommon to please analysis tool.
Change-Id: I5c078a197c5026e9bd886d0ba1e188054b5ffa75
Hiroshi Yamauchi [Fri, 4 Apr 2014 04:34:09 +0000 (04:34 +0000)]
Merge "Insert an empty read barrier call."
Hiroshi Yamauchi [Thu, 3 Apr 2014 00:32:54 +0000 (17:32 -0700)]
Insert an empty read barrier call.
Bug:
12687968
Change-Id: Ie1d28658e16e09f6a983cb5c1f0d5b375b7ae069
Hiroshi Yamauchi [Fri, 4 Apr 2014 03:06:48 +0000 (03:06 +0000)]
am
e9236f03: Merge "Fix Object::Clone()\'s pre-fence barrier."
* commit '
e9236f03d8c4348a8f1a8767baa1aea60ecdc1f5':
Fix Object::Clone()'s pre-fence barrier.
Hiroshi Yamauchi [Fri, 4 Apr 2014 02:54:16 +0000 (02:54 +0000)]
Merge "Fix Object::Clone()'s pre-fence barrier."
Serguei Katkov [Thu, 3 Apr 2014 08:17:26 +0000 (15:17 +0700)]
art_quick_lock_object uses registers incorrectly
x86 implementation of art_quick_lock_object uses registers
incorrectly in the case of .Lalready_thin. eax points to object
while it is used as holding the lock word.
The patch fixes this.
Change-Id: Iacf1a40c6570fae78a5504ca3b2f1218631f7a8f
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Mathieu Chartier [Fri, 4 Apr 2014 02:01:13 +0000 (02:01 +0000)]
am
e5893f8f: Merge "Restore the args in the invoke trampoline slow paths."
* commit '
e5893f8fb70c58fe9950c1fc8b1023e32ca34637':
Restore the args in the invoke trampoline slow paths.
Mathieu Chartier [Fri, 4 Apr 2014 00:47:42 +0000 (00:47 +0000)]
Merge "Restore the args in the invoke trampoline slow paths."
Andreas Gampe [Fri, 4 Apr 2014 00:08:17 +0000 (00:08 +0000)]
am
03bafa4b: Merge "Do not output ARM64 assembler debug code."
* commit '
03bafa4b80e130664295a8eada93d20bc6f6cdeb':
Do not output ARM64 assembler debug code.
Andreas Gampe [Fri, 4 Apr 2014 00:08:16 +0000 (00:08 +0000)]
am
77093dc3: Merge "Make frame size dependent on arch-specific constants."
* commit '
77093dc31ddce272e7856a20ece595bf5554e0a6':
Make frame size dependent on arch-specific constants.
Dave Allison [Fri, 4 Apr 2014 00:08:15 +0000 (00:08 +0000)]
am
0666dcbc: Merge "Add OpEndIT() for marking the end of OpIT blocks"
* commit '
0666dcbc600db012760218247aed24c5eff36128':
Add OpEndIT() for marking the end of OpIT blocks
Andreas Gampe [Fri, 4 Apr 2014 00:08:13 +0000 (00:08 +0000)]
am
0537c5ea: Merge "Fix off-by-1 error in new SpaceBitmap"
* commit '
0537c5ea92a4fb60a04024cc2b7247f08a3d9096':
Fix off-by-1 error in new SpaceBitmap
Mathieu Chartier [Fri, 4 Apr 2014 00:08:12 +0000 (00:08 +0000)]
am
7f74c43c: Merge "Add monitor_enter_object as root."
* commit '
7f74c43c2c621512e7331e2876ae4d4c44d28ff0':
Add monitor_enter_object as root.
Hiroshi Yamauchi [Thu, 3 Apr 2014 23:28:10 +0000 (16:28 -0700)]
Fix Object::Clone()'s pre-fence barrier.
Pass in a pre-fence barrier object that sets in the array length
instead of setting it after returning from AllocObject().
Fix another potential bug due to the wrong default pre-fence barrier
parameter value. Since this appears error-prone, removed the default
parameter value and make it an explicit parameter.
Fix another potential moving GC bug due to a lack of a SirtRef.
Bug:
13097759
Change-Id: I466aa0e50f9e1a5dbf20be5a195edee619c7514e
Mathieu Chartier [Thu, 3 Apr 2014 22:25:30 +0000 (15:25 -0700)]
Restore the args in the invoke trampoline slow paths.
Previously, there were errors caused by not restoring the args for
the slow path in artInvokeInterfaceTrampoline and artInvokeCommon. The
slow path in artInvokeInterfaceTrampoline occurs when you attempt
to do an interface dispatch of a method in another dex file. The slow
path in artInvokeCommon occurs when the method in dex cache is not
already resolved.
Since FindMethodFromCode may resolve a method, it can occasionally
cause thread suspension/GC. If a moving GC occurred at this point it
resulted in this_object being invalid after the trampoline returned
the code pointer. This caused a native crash in one of the money runs
since there was an unbundeled app which did a List.iterator call.
Bug:
12934910
Change-Id: Ib454faad14bef0d7732a6d7f1ca5803472d502a6
Dave Allison [Thu, 3 Apr 2014 23:33:48 +0000 (16:33 -0700)]
Disable use of R4 as a promotable register
When we are using implicit suspend checks we can potentially
use r4 as a register into which variables can be promoted. However
the runtime doesn't save this and thus will corrupt it. Not good.
This disables the promotion of r4 until we can figure out how
to make the runtime save it properly.
Change-Id: Ib95ce93579e1c364de5ecc8e728f2cb7990da77a
Chao-ying Fu [Thu, 3 Apr 2014 22:09:37 +0000 (15:09 -0700)]
Fix LoadValueWide to not call MarkLive for high reg that is equal to low reg
For x86 double FP registers, LoadValueWide should not call MarkLive for
high reg that is equal to low reg.
Change-Id: Ie6a59307c9ff93303bd489c15529432cfdeceaa4
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Andreas Gampe [Thu, 3 Apr 2014 20:46:07 +0000 (20:46 +0000)]
Merge "Do not output ARM64 assembler debug code."
Andreas Gampe [Thu, 3 Apr 2014 20:43:06 +0000 (20:43 +0000)]
Merge "Make frame size dependent on arch-specific constants."
Dave Allison [Thu, 3 Apr 2014 20:41:20 +0000 (20:41 +0000)]
Merge "Add OpEndIT() for marking the end of OpIT blocks"
Andreas Gampe [Thu, 3 Apr 2014 20:31:32 +0000 (13:31 -0700)]
Make frame size dependent on arch-specific constants.
Necessary for proper cross-compiling.
Change-Id: I852901ee6ca5121e480b83a8e318bdc9c7d615e8
Vladimir Marko [Thu, 3 Apr 2014 16:59:02 +0000 (17:59 +0100)]
Disassemble Thumb2 shifts and more VFP instructions.
Disassemble Thumb2 instructions LSL, LSR, ASR, ROR and VFP
instructions VABS, VADD, VSUB, VMOV, VMUL, VNMUL, VDIV.
Clean up disassembly of VCMP, VCMPE, VNEG and VSQRT. These
could have been erroneously used for other insns (VSQRT for
VMOV was encountered) and one VSQRT branch was unreachable.
Remove duplicate VMOV opcodes from compiler.
Change-Id: I160a1e3e4b6eabb6a5101ce348ffd49c0573257d
Andreas Gampe [Thu, 3 Apr 2014 20:16:01 +0000 (13:16 -0700)]
Do not output ARM64 assembler debug code.
This breaks the run tests, which are a simple diff against an
expected output. Please do such changes in a local change.
Change-Id: Ib961919600ba79eca1356278bc6c09ca17041c7c
Dave Allison [Thu, 3 Apr 2014 00:03:45 +0000 (17:03 -0700)]
Add OpEndIT() for marking the end of OpIT blocks
In ARM we need to prevent code motion to the inside of an
IT block. This was done using a GenBarrier() to mark the end, but
it wasn't obvious that this is what was happening. This CL adds
an explicit OpEndIT() that takes the LIR of the OpIT for future
checks.
Bug:
13751744
Change-Id: If41d2adea1f43f11ebb3b72906bd308252ce3d01
Andreas Gampe [Thu, 3 Apr 2014 17:52:27 +0000 (17:52 +0000)]
Merge "Fix off-by-1 error in new SpaceBitmap"
Andreas Gampe [Thu, 3 Apr 2014 17:46:42 +0000 (10:46 -0700)]
Fix off-by-1 error in new SpaceBitmap
Do not visit_end in the VisitMarkedRange code.
Change-Id: Iaf02788509b21a102cd1c0e2db3cbd09d0522bfa
Mathieu Chartier [Thu, 3 Apr 2014 17:43:40 +0000 (17:43 +0000)]
Merge "Add monitor_enter_object as root."
Mathieu Chartier [Thu, 3 Apr 2014 16:57:36 +0000 (09:57 -0700)]
Add monitor_enter_object as root.
The monitor enter object was not a root, this caused issues with
compactions since the object could move and then verify object would
fail.
Bug:
13769139
Change-Id: Ia732376fb9d1de8bf137ef9894cb2bb3241d8bb2
Zheng Xu [Wed, 2 Apr 2014 12:31:31 +0000 (13:31 +0100)]
ARM: enable optimisation for easy multiply, add modulus pattern.
Fix the issue when src/dest registers overlap in easy multiply.
Change-Id: Ie8cc098c29c74fd06c1b67359ef94f2c6b88a71e
Nicolas Geoffray [Thu, 3 Apr 2014 17:00:48 +0000 (17:00 +0000)]
am
a7b2826f: Merge "Support passing arguments to invoke-static* instructions."
* commit '
a7b2826fa469c626ff2c3ff26fd848c28bccc092':
Support passing arguments to invoke-static* instructions.
Nicolas Geoffray [Thu, 3 Apr 2014 16:49:25 +0000 (16:49 +0000)]
Merge "Support passing arguments to invoke-static* instructions."
Nicolas Geoffray [Thu, 3 Apr 2014 09:38:37 +0000 (10:38 +0100)]
Support passing arguments to invoke-static* instructions.
- Stop using the frame pointer for accessing locals.
- Stop emulating a stack when doing code generation. Instead,
rely on dex register model, where instructions only reference
registers.
Change-Id: Id51bd7d33ac430cb87a53c9f4b0c864eeb1006f9
Bill Buzbee [Thu, 3 Apr 2014 13:39:50 +0000 (13:39 +0000)]
am
5a4139fd: Merge "art: Handle x86_64 architecture equal to x86"
* commit '
5a4139fd33547d09c94d9650157e3a4e4c9eede4':
art: Handle x86_64 architecture equal to x86