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

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

Issue 709123005: [arm] Recognize SXTB, SXTH, UXTB and UXTH. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 1 month 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 | « src/arm/simulator-arm.cc ('k') | src/compiler/arm/instruction-codes-arm.h » ('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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/arm/macro-assembler-arm.h" 7 #include "src/arm/macro-assembler-arm.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 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 DCHECK_EQ(LeaveCC, i.OutputSBit()); 292 DCHECK_EQ(LeaveCC, i.OutputSBit());
293 break; 293 break;
294 } 294 }
295 case kArmUbfx: { 295 case kArmUbfx: {
296 CpuFeatureScope scope(masm(), ARMv7); 296 CpuFeatureScope scope(masm(), ARMv7);
297 __ ubfx(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1), 297 __ ubfx(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1),
298 i.InputInt8(2)); 298 i.InputInt8(2));
299 DCHECK_EQ(LeaveCC, i.OutputSBit()); 299 DCHECK_EQ(LeaveCC, i.OutputSBit());
300 break; 300 break;
301 } 301 }
302 case kArmSxtb:
303 __ sxtb(i.OutputRegister(), i.InputRegister(0), i.InputInt32(1));
304 DCHECK_EQ(LeaveCC, i.OutputSBit());
305 break;
306 case kArmSxth:
307 __ sxth(i.OutputRegister(), i.InputRegister(0), i.InputInt32(1));
308 DCHECK_EQ(LeaveCC, i.OutputSBit());
309 break;
310 case kArmSxtab:
311 __ sxtab(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
312 i.InputInt32(2));
313 DCHECK_EQ(LeaveCC, i.OutputSBit());
314 break;
315 case kArmSxtah:
316 __ sxtah(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
317 i.InputInt32(2));
318 DCHECK_EQ(LeaveCC, i.OutputSBit());
319 break;
320 case kArmUxtb:
321 __ uxtb(i.OutputRegister(), i.InputRegister(0), i.InputInt32(1));
322 DCHECK_EQ(LeaveCC, i.OutputSBit());
323 break;
324 case kArmUxth:
325 __ uxth(i.OutputRegister(), i.InputRegister(0), i.InputInt32(1));
326 DCHECK_EQ(LeaveCC, i.OutputSBit());
327 break;
328 case kArmUxtab:
329 __ uxtab(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
330 i.InputInt32(2));
331 DCHECK_EQ(LeaveCC, i.OutputSBit());
332 break;
333 case kArmUxtah:
334 __ uxtah(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
335 i.InputInt32(2));
336 DCHECK_EQ(LeaveCC, i.OutputSBit());
337 break;
302 case kArmCmp: 338 case kArmCmp:
303 __ cmp(i.InputRegister(0), i.InputOperand2(1)); 339 __ cmp(i.InputRegister(0), i.InputOperand2(1));
304 DCHECK_EQ(SetCC, i.OutputSBit()); 340 DCHECK_EQ(SetCC, i.OutputSBit());
305 break; 341 break;
306 case kArmCmn: 342 case kArmCmn:
307 __ cmn(i.InputRegister(0), i.InputOperand2(1)); 343 __ cmn(i.InputRegister(0), i.InputOperand2(1));
308 DCHECK_EQ(SetCC, i.OutputSBit()); 344 DCHECK_EQ(SetCC, i.OutputSBit());
309 break; 345 break;
310 case kArmTst: 346 case kArmTst:
311 __ tst(i.InputRegister(0), i.InputOperand2(1)); 347 __ tst(i.InputRegister(0), i.InputOperand2(1));
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 } 982 }
947 } 983 }
948 MarkLazyDeoptSite(); 984 MarkLazyDeoptSite();
949 } 985 }
950 986
951 #undef __ 987 #undef __
952 988
953 } // namespace compiler 989 } // namespace compiler
954 } // namespace internal 990 } // namespace internal
955 } // namespace v8 991 } // namespace v8
OLDNEW
« no previous file with comments | « src/arm/simulator-arm.cc ('k') | src/compiler/arm/instruction-codes-arm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698