summaryrefslogtreecommitdiff
path: root/compiler/dex/quick/quick_compiler.cc
diff options
context:
space:
mode:
author Igor Murashkin <iam@google.com> 2015-06-18 10:05:11 -0700
committer Igor Murashkin <iam@google.com> 2015-06-22 14:13:30 -0700
commit2ee54e249ad21c74f29a161e248bebe7d22fddf1 (patch)
tree125465dd7a6d23f83ecbf2d3454f21471868422c /compiler/dex/quick/quick_compiler.cc
parent158f35c98e2ec0d40d2c032b8cdce5fb60944a7f (diff)
runtime: Partially implement box-lambda and unbox-lambda experimental opcodes
These opcodes are not yet fully specified, and *will* change before they become shippable. Do not write production code against experimental opcodes. -- Implement partial interpreter support for new dex instructions box/unbox-lambda. * box-lambda will take a closure and convert it into an Object * unbox-lambda will take an Object and convert it to a closure (Currently does not implement object identity or variable capture). All new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them. Change-Id: I3c15ccf8a26ccecd1d35808a8c1b4149220f6019
Diffstat (limited to 'compiler/dex/quick/quick_compiler.cc')
-rw-r--r--compiler/dex/quick/quick_compiler.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/dex/quick/quick_compiler.cc b/compiler/dex/quick/quick_compiler.cc
index 97703a5ff1..2523a83c39 100644
--- a/compiler/dex/quick/quick_compiler.cc
+++ b/compiler/dex/quick/quick_compiler.cc
@@ -382,8 +382,8 @@ static int kAllOpcodes[] = {
Instruction::UNUSED_F5,
Instruction::CREATE_LAMBDA,
Instruction::UNUSED_F7,
- Instruction::UNUSED_F8,
- Instruction::UNUSED_F9,
+ Instruction::BOX_LAMBDA,
+ Instruction::UNBOX_LAMBDA,
Instruction::UNUSED_FA,
Instruction::UNUSED_FB,
Instruction::UNUSED_FC,
@@ -425,6 +425,8 @@ static int kInvokeOpcodes[] = {
static const int kUnsupportedLambdaOpcodes[] = {
Instruction::INVOKE_LAMBDA,
Instruction::CREATE_LAMBDA,
+ Instruction::BOX_LAMBDA,
+ Instruction::UNBOX_LAMBDA,
};
// Unsupported opcodes. Null can be used when everything is supported. Size of the lists is