OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 #if !defined(DART_PRECOMPILED_RUNTIME) | 4 #if !defined(DART_PRECOMPILED_RUNTIME) |
5 | 5 |
6 #include "vm/kernel_binary.h" | 6 #include "vm/kernel_binary.h" |
7 #include "platform/globals.h" | 7 #include "platform/globals.h" |
8 #include "vm/flags.h" | 8 #include "vm/flags.h" |
9 #include "vm/growable_array.h" | 9 #include "vm/growable_array.h" |
10 #include "vm/kernel.h" | 10 #include "vm/kernel.h" |
(...skipping 1133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1144 | 1144 |
1145 | 1145 |
1146 VectorCreation* VectorCreation::ReadFrom(Reader* reader) { | 1146 VectorCreation* VectorCreation::ReadFrom(Reader* reader) { |
1147 TRACE_READ_OFFSET(); | 1147 TRACE_READ_OFFSET(); |
1148 | 1148 |
1149 VectorCreation* vector_creation = new VectorCreation(); | 1149 VectorCreation* vector_creation = new VectorCreation(); |
1150 vector_creation->kernel_offset_ = | 1150 vector_creation->kernel_offset_ = |
1151 reader->offset() - 1; // -1 to include tag byte. | 1151 reader->offset() - 1; // -1 to include tag byte. |
1152 vector_creation->value_ = reader->ReadUInt(); | 1152 vector_creation->value_ = reader->ReadUInt(); |
1153 | 1153 |
| 1154 vector_creation->can_stream_ = true; |
| 1155 |
1154 return vector_creation; | 1156 return vector_creation; |
1155 } | 1157 } |
1156 | 1158 |
1157 | 1159 |
1158 VectorGet* VectorGet::ReadFrom(Reader* reader) { | 1160 VectorGet* VectorGet::ReadFrom(Reader* reader) { |
1159 TRACE_READ_OFFSET(); | 1161 TRACE_READ_OFFSET(); |
1160 | 1162 |
1161 VectorGet* vector_get = new VectorGet(); | 1163 VectorGet* vector_get = new VectorGet(); |
1162 vector_get->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte. | 1164 vector_get->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte. |
1163 vector_get->vector_expression_ = Expression::ReadFrom(reader); | 1165 vector_get->vector_expression_ = Expression::ReadFrom(reader); |
1164 vector_get->index_ = reader->ReadUInt(); | 1166 vector_get->index_ = reader->ReadUInt(); |
1165 | 1167 |
1166 vector_get->can_stream_ = false; | 1168 vector_get->can_stream_ = true; |
1167 | 1169 |
1168 return vector_get; | 1170 return vector_get; |
1169 } | 1171 } |
1170 | 1172 |
1171 | 1173 |
1172 VectorSet* VectorSet::ReadFrom(Reader* reader) { | 1174 VectorSet* VectorSet::ReadFrom(Reader* reader) { |
1173 TRACE_READ_OFFSET(); | 1175 TRACE_READ_OFFSET(); |
1174 | 1176 |
1175 VectorSet* vector_set = new VectorSet(); | 1177 VectorSet* vector_set = new VectorSet(); |
1176 vector_set->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte. | 1178 vector_set->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte. |
1177 vector_set->vector_expression_ = Expression::ReadFrom(reader); | 1179 vector_set->vector_expression_ = Expression::ReadFrom(reader); |
1178 vector_set->index_ = reader->ReadUInt(); | 1180 vector_set->index_ = reader->ReadUInt(); |
1179 vector_set->value_ = Expression::ReadFrom(reader); | 1181 vector_set->value_ = Expression::ReadFrom(reader); |
1180 | 1182 |
1181 vector_set->can_stream_ = false; | 1183 vector_set->can_stream_ = vector_set->value_->can_stream(); |
1182 | 1184 |
1183 return vector_set; | 1185 return vector_set; |
1184 } | 1186 } |
1185 | 1187 |
1186 | 1188 |
1187 VectorCopy* VectorCopy::ReadFrom(Reader* reader) { | 1189 VectorCopy* VectorCopy::ReadFrom(Reader* reader) { |
1188 TRACE_READ_OFFSET(); | 1190 TRACE_READ_OFFSET(); |
1189 | 1191 |
1190 VectorCopy* vector_copy = new VectorCopy(); | 1192 VectorCopy* vector_copy = new VectorCopy(); |
1191 vector_copy->kernel_offset_ = | 1193 vector_copy->kernel_offset_ = |
1192 reader->offset() - 1; // -1 to include tag byte. | 1194 reader->offset() - 1; // -1 to include tag byte. |
1193 vector_copy->vector_expression_ = Expression::ReadFrom(reader); | 1195 vector_copy->vector_expression_ = Expression::ReadFrom(reader); |
1194 | 1196 |
1195 vector_copy->can_stream_ = false; | 1197 vector_copy->can_stream_ = true; |
1196 | 1198 |
1197 return vector_copy; | 1199 return vector_copy; |
1198 } | 1200 } |
1199 | 1201 |
1200 | 1202 |
1201 ClosureCreation* ClosureCreation::ReadFrom(Reader* reader) { | 1203 ClosureCreation* ClosureCreation::ReadFrom(Reader* reader) { |
1202 TRACE_READ_OFFSET(); | 1204 TRACE_READ_OFFSET(); |
1203 | 1205 |
1204 ClosureCreation* closure_creation = new ClosureCreation(); | 1206 ClosureCreation* closure_creation = new ClosureCreation(); |
1205 closure_creation->kernel_offset_ = | 1207 closure_creation->kernel_offset_ = |
1206 reader->offset() - 1; // to include tag byte. | 1208 reader->offset() - 1; // to include tag byte. |
1207 closure_creation->top_level_function_reference_ = | 1209 closure_creation->top_level_function_reference_ = |
1208 Reference::ReadMemberFrom(reader); | 1210 Reference::ReadMemberFrom(reader); |
1209 closure_creation->context_vector_ = Expression::ReadFrom(reader); | 1211 closure_creation->context_vector_ = Expression::ReadFrom(reader); |
1210 closure_creation->function_type_ = | 1212 closure_creation->function_type_ = |
1211 FunctionType::Cast(DartType::ReadFrom(reader)); | 1213 FunctionType::Cast(DartType::ReadFrom(reader)); |
1212 | 1214 |
1213 closure_creation->can_stream_ = false; | 1215 closure_creation->can_stream_ = true; |
1214 | 1216 |
1215 return closure_creation; | 1217 return closure_creation; |
1216 } | 1218 } |
1217 | 1219 |
1218 | 1220 |
1219 Statement* Statement::ReadFrom(Reader* reader) { | 1221 Statement* Statement::ReadFrom(Reader* reader) { |
1220 TRACE_READ_OFFSET(); | 1222 TRACE_READ_OFFSET(); |
1221 Tag tag = reader->ReadTag(); | 1223 Tag tag = reader->ReadTag(); |
1222 switch (tag) { | 1224 switch (tag) { |
1223 case kInvalidStatement: | 1225 case kInvalidStatement: |
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1881 | 1883 |
1882 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer, | 1884 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer, |
1883 intptr_t buffer_length) { | 1885 intptr_t buffer_length) { |
1884 kernel::Reader reader(buffer, buffer_length); | 1886 kernel::Reader reader(buffer, buffer_length); |
1885 return kernel::Program::ReadFrom(&reader); | 1887 return kernel::Program::ReadFrom(&reader); |
1886 } | 1888 } |
1887 | 1889 |
1888 | 1890 |
1889 } // namespace dart | 1891 } // namespace dart |
1890 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 1892 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
OLD | NEW |