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

Side by Side Diff: src/a64/lithium-codegen-a64.h

Issue 142473006: A64: Do not sign-extend constant operand of bitwise operation. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/a64/lithium-codegen-a64.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 111
112 // Finish the code by setting stack height, safepoint, and bailout 112 // Finish the code by setting stack height, safepoint, and bailout
113 // information on it. 113 // information on it.
114 void FinishCode(Handle<Code> code); 114 void FinishCode(Handle<Code> code);
115 115
116 // Support for converting LOperands to assembler types. 116 // Support for converting LOperands to assembler types.
117 // LOperand must be a register. 117 // LOperand must be a register.
118 Register ToRegister(LOperand* op) const; 118 Register ToRegister(LOperand* op) const;
119 Register ToRegister32(LOperand* op) const; 119 Register ToRegister32(LOperand* op) const;
120 Operand ToOperand(LOperand* op); 120 Operand ToOperand(LOperand* op);
121 Operand ToOperand32(LOperand* op); 121 Operand ToOperand32I(LOperand* op);
122 Operand ToOperand32U(LOperand* op);
122 MemOperand ToMemOperand(LOperand* op) const; 123 MemOperand ToMemOperand(LOperand* op) const;
123 Handle<Object> ToHandle(LConstantOperand* op) const; 124 Handle<Object> ToHandle(LConstantOperand* op) const;
124 125
125 // TODO(jbramley): Examine these helpers and check that they make sense. 126 // TODO(jbramley): Examine these helpers and check that they make sense.
126 // IsInteger32Constant returns true for smi constants, for example. 127 // IsInteger32Constant returns true for smi constants, for example.
127 bool IsInteger32Constant(LConstantOperand* op) const; 128 bool IsInteger32Constant(LConstantOperand* op) const;
128 bool IsSmi(LConstantOperand* op) const; 129 bool IsSmi(LConstantOperand* op) const;
129 130
130 int32_t ToInteger32(LConstantOperand* op) const; 131 int32_t ToInteger32(LConstantOperand* op) const;
131 Smi* ToSmi(LConstantOperand* op) const; 132 Smi* ToSmi(LConstantOperand* op) const;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 LOperand* temp2, 172 LOperand* temp2,
172 IntegerSignedness signedness); 173 IntegerSignedness signedness);
173 void DoDeferredTaggedToI(LTaggedToI* instr, 174 void DoDeferredTaggedToI(LTaggedToI* instr,
174 LOperand* value, 175 LOperand* value,
175 LOperand* temp1, 176 LOperand* temp1,
176 LOperand* temp2); 177 LOperand* temp2);
177 void DoDeferredAllocate(LAllocate* instr); 178 void DoDeferredAllocate(LAllocate* instr);
178 179
179 void DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr); 180 void DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr);
180 181
182 Operand ToOperand32(LOperand* op, IntegerSignedness signedness);
183
181 static Condition TokenToCondition(Token::Value op, bool is_unsigned); 184 static Condition TokenToCondition(Token::Value op, bool is_unsigned);
182 void EmitGoto(int block); 185 void EmitGoto(int block);
183 int GetNextEmittedBlock() const; 186 int GetNextEmittedBlock() const;
184 void DoGap(LGap* instr); 187 void DoGap(LGap* instr);
185 188
186 // Generic version of EmitBranch. It contains some code to avoid emitting a 189 // Generic version of EmitBranch. It contains some code to avoid emitting a
187 // branch on the next emitted basic block where we could just fall-through. 190 // branch on the next emitted basic block where we could just fall-through.
188 // You shouldn't use that directly but rather consider one of the helper like 191 // You shouldn't use that directly but rather consider one of the helper like
189 // LCodeGen::EmitBranch, LCodeGen::EmitCompareAndBranch... 192 // LCodeGen::EmitBranch, LCodeGen::EmitCompareAndBranch...
190 template<class InstrType> 193 template<class InstrType>
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 483
481 protected: 484 protected:
482 MacroAssembler* masm() const { return codegen_->masm(); } 485 MacroAssembler* masm() const { return codegen_->masm(); }
483 486
484 LCodeGen* codegen_; 487 LCodeGen* codegen_;
485 }; 488 };
486 489
487 } } // namespace v8::internal 490 } } // namespace v8::internal
488 491
489 #endif // V8_A64_LITHIUM_CODEGEN_A64_H_ 492 #endif // V8_A64_LITHIUM_CODEGEN_A64_H_
OLDNEW
« no previous file with comments | « no previous file | src/a64/lithium-codegen-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698