Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(331)

Side by Side Diff: src/compiler/wasm-linkage.cc

Issue 2021323003: [wasm] remove faux code objects Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/wasm-compiler.cc ('k') | src/compiler/x64/code-generator-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/assembler.h" 5 #include "src/assembler.h"
6 #include "src/macro-assembler.h" 6 #include "src/macro-assembler.h"
7 7
8 #include "src/wasm/wasm-module.h" 8 #include "src/wasm/wasm-module.h"
9 9
10 #include "src/compiler/linkage.h" 10 #include "src/compiler/linkage.h"
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 static const int kFPParamRegistersCount = 0; 251 static const int kFPParamRegistersCount = 0;
252 #endif 252 #endif
253 253
254 Allocator params(kGPParamRegisters, kGPParamRegistersCount, kFPParamRegisters, 254 Allocator params(kGPParamRegisters, kGPParamRegistersCount, kFPParamRegisters,
255 kFPParamRegistersCount); 255 kFPParamRegistersCount);
256 256
257 return params; 257 return params;
258 } 258 }
259 259
260 // General code uses the above configuration data. 260 // General code uses the above configuration data.
261 CallDescriptor* ModuleEnv::GetWasmCallDescriptor(Zone* zone, 261 CallDescriptor* ModuleEnv::GetWasmCallDescriptor(Zone* zone, FunctionSig* fsig,
262 FunctionSig* fsig) { 262 bool internal) {
263 MachineSignature::Builder msig(zone, fsig->return_count(), 263 MachineSignature::Builder msig(zone, fsig->return_count(),
264 fsig->parameter_count()); 264 fsig->parameter_count());
265 LocationSignature::Builder locations(zone, fsig->return_count(), 265 LocationSignature::Builder locations(zone, fsig->return_count(),
266 fsig->parameter_count()); 266 fsig->parameter_count());
267 267
268 Allocator rets = GetReturnRegisters(); 268 Allocator rets = GetReturnRegisters();
269 269
270 // Add return location(s). 270 // Add return location(s).
271 const int return_count = static_cast<int>(locations.return_count_); 271 const int return_count = static_cast<int>(locations.return_count_);
272 for (int i = 0; i < return_count; i++) { 272 for (int i = 0; i < return_count; i++) {
(...skipping 12 matching lines...) Expand all
285 locations.AddParam(params.Next(param)); 285 locations.AddParam(params.Next(param));
286 } 286 }
287 287
288 const RegList kCalleeSaveRegisters = 0; 288 const RegList kCalleeSaveRegisters = 0;
289 const RegList kCalleeSaveFPRegisters = 0; 289 const RegList kCalleeSaveFPRegisters = 0;
290 290
291 // The target for WASM calls is always a code object. 291 // The target for WASM calls is always a code object.
292 MachineType target_type = MachineType::AnyTagged(); 292 MachineType target_type = MachineType::AnyTagged();
293 LinkageLocation target_loc = LinkageLocation::ForAnyRegister(); 293 LinkageLocation target_loc = LinkageLocation::ForAnyRegister();
294 294
295 return new (zone) CallDescriptor( // -- 295 return new (zone) CallDescriptor( // --
296 CallDescriptor::kCallCodeObject, // kind 296 internal ? CallDescriptor::kCallWasmFunction
297 target_type, // target MachineType 297 : CallDescriptor::kCallCodeObject, // kind
298 target_loc, // target location 298 target_type, // target MachineType
299 msig.Build(), // machine_sig 299 target_loc, // target location
300 locations.Build(), // location_sig 300 msig.Build(), // machine_sig
301 params.stack_offset, // stack_parameter_count 301 locations.Build(), // location_sig
302 compiler::Operator::kNoProperties, // properties 302 params.stack_offset, // stack_parameter_count
303 kCalleeSaveRegisters, // callee-saved registers 303 compiler::Operator::kNoProperties, // properties
304 kCalleeSaveFPRegisters, // callee-saved fp regs 304 kCalleeSaveRegisters, // callee-saved registers
305 CallDescriptor::kUseNativeStack, // flags 305 kCalleeSaveFPRegisters, // callee-saved fp regs
306 CallDescriptor::kUseNativeStack, // flags
306 "wasm-call"); 307 "wasm-call");
307 } 308 }
308 309
309 CallDescriptor* ModuleEnv::GetI32WasmCallDescriptor( 310 CallDescriptor* ModuleEnv::GetI32WasmCallDescriptor(
310 Zone* zone, CallDescriptor* descriptor) { 311 Zone* zone, CallDescriptor* descriptor) {
311 const MachineSignature* signature = descriptor->GetMachineSignature(); 312 const MachineSignature* signature = descriptor->GetMachineSignature();
312 size_t parameter_count = signature->parameter_count(); 313 size_t parameter_count = signature->parameter_count();
313 size_t return_count = signature->return_count(); 314 size_t return_count = signature->return_count();
314 for (size_t i = 0; i < signature->parameter_count(); i++) { 315 for (size_t i = 0; i < signature->parameter_count(); i++) {
315 if (signature->GetParam(i) == MachineType::Int64()) { 316 if (signature->GetParam(i) == MachineType::Int64()) {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 descriptor->CalleeSavedFPRegisters(), // callee-saved fp regs 376 descriptor->CalleeSavedFPRegisters(), // callee-saved fp regs
376 descriptor->flags(), // flags 377 descriptor->flags(), // flags
377 descriptor->debug_name()); 378 descriptor->debug_name());
378 379
379 return descriptor; 380 return descriptor;
380 } 381 }
381 382
382 } // namespace wasm 383 } // namespace wasm
383 } // namespace internal 384 } // namespace internal
384 } // namespace v8 385 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/wasm-compiler.cc ('k') | src/compiler/x64/code-generator-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698