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

Side by Side Diff: src/compiler/ia32/code-generator-ia32.cc

Issue 2562393002: [wasm] Introduce the TrapIf and TrapUnless operators to generate trap code. (Closed)
Patch Set: Record the safepoint at the right position Created 4 years 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
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/compiler/code-generator.h" 5 #include "src/compiler/code-generator.h"
6 6
7 #include "src/compilation-info.h" 7 #include "src/compilation-info.h"
8 #include "src/compiler/code-generator-impl.h" 8 #include "src/compiler/code-generator-impl.h"
9 #include "src/compiler/gap-resolver.h" 9 #include "src/compiler/gap-resolver.h"
10 #include "src/compiler/node-matchers.h" 10 #include "src/compiler/node-matchers.h"
(...skipping 1979 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 } 1990 }
1991 // Add a jump if not falling through to the next block. 1991 // Add a jump if not falling through to the next block.
1992 if (!branch->fallthru) __ jmp(flabel); 1992 if (!branch->fallthru) __ jmp(flabel);
1993 } 1993 }
1994 1994
1995 1995
1996 void CodeGenerator::AssembleArchJump(RpoNumber target) { 1996 void CodeGenerator::AssembleArchJump(RpoNumber target) {
1997 if (!IsNextInAssemblyOrder(target)) __ jmp(GetLabel(target)); 1997 if (!IsNextInAssemblyOrder(target)) __ jmp(GetLabel(target));
1998 } 1998 }
1999 1999
2000 void CodeGenerator::AssembleArchTrap(Instruction* instr,
2001 FlagsCondition condition) {
2002 UNREACHABLE();
2003 }
2000 2004
2001 // Assembles boolean materializations after an instruction. 2005 // Assembles boolean materializations after an instruction.
2002 void CodeGenerator::AssembleArchBoolean(Instruction* instr, 2006 void CodeGenerator::AssembleArchBoolean(Instruction* instr,
2003 FlagsCondition condition) { 2007 FlagsCondition condition) {
2004 IA32OperandConverter i(this, instr); 2008 IA32OperandConverter i(this, instr);
2005 Label done; 2009 Label done;
2006 2010
2007 // Materialize a full 32-bit 1 or 0 value. The result register is always the 2011 // Materialize a full 32-bit 1 or 0 value. The result register is always the
2008 // last output of the instruction. 2012 // last output of the instruction.
2009 Label check; 2013 Label check;
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
2599 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; 2603 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc;
2600 __ Nop(padding_size); 2604 __ Nop(padding_size);
2601 } 2605 }
2602 } 2606 }
2603 2607
2604 #undef __ 2608 #undef __
2605 2609
2606 } // namespace compiler 2610 } // namespace compiler
2607 } // namespace internal 2611 } // namespace internal
2608 } // namespace v8 2612 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698