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

Side by Side Diff: src/arm/lithium-codegen-arm.cc

Issue 5806001: Support %_IsObject in Crankshaft. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 1195 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 // the map. The object has already been smi checked. 1206 // the map. The object has already been smi checked.
1207 Register scratch = ToRegister(instr->temp()); 1207 Register scratch = ToRegister(instr->temp());
1208 __ ldr(scratch, FieldMemOperand(reg, HeapObject::kMapOffset)); 1208 __ ldr(scratch, FieldMemOperand(reg, HeapObject::kMapOffset));
1209 __ ldrb(scratch, FieldMemOperand(scratch, Map::kBitFieldOffset)); 1209 __ ldrb(scratch, FieldMemOperand(scratch, Map::kBitFieldOffset));
1210 __ tst(scratch, Operand(1 << Map::kIsUndetectable)); 1210 __ tst(scratch, Operand(1 << Map::kIsUndetectable));
1211 EmitBranch(true_block, false_block, ne); 1211 EmitBranch(true_block, false_block, ne);
1212 } 1212 }
1213 } 1213 }
1214 1214
1215 1215
1216 Condition LCodeGen::EmitIsObject(Register input,
1217 Register temp1,
1218 Register temp2,
1219 Label* is_not_object,
1220 Label* is_object) {
1221 Abort("EmitIsObject unimplemented.");
1222 return ne;
1223 }
1224
1225
1226 void LCodeGen::DoIsObject(LIsObject* instr) {
1227 Abort("DoIsObject unimplemented.");
1228 }
1229
1230
1231 void LCodeGen::DoIsObjectAndBranch(LIsObjectAndBranch* instr) {
1232 Abort("DoIsObjectAndBranch unimplemented.");
1233 }
1234
1235
1216 void LCodeGen::DoIsSmi(LIsSmi* instr) { 1236 void LCodeGen::DoIsSmi(LIsSmi* instr) {
1217 ASSERT(instr->hydrogen()->value()->representation().IsTagged()); 1237 ASSERT(instr->hydrogen()->value()->representation().IsTagged());
1218 Register result = ToRegister(instr->result()); 1238 Register result = ToRegister(instr->result());
1219 Register input_reg = EmitLoadRegister(instr->input(), ip); 1239 Register input_reg = EmitLoadRegister(instr->input(), ip);
1220 __ tst(input_reg, Operand(kSmiTagMask)); 1240 __ tst(input_reg, Operand(kSmiTagMask));
1221 __ LoadRoot(result, Heap::kTrueValueRootIndex); 1241 __ LoadRoot(result, Heap::kTrueValueRootIndex);
1222 Label done; 1242 Label done;
1223 __ b(eq, &done); 1243 __ b(eq, &done);
1224 __ LoadRoot(result, Heap::kFalseValueRootIndex); 1244 __ LoadRoot(result, Heap::kFalseValueRootIndex);
1225 __ bind(&done); 1245 __ bind(&done);
(...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after
2138 2158
2139 2159
2140 void LCodeGen::DoOsrEntry(LOsrEntry* instr) { 2160 void LCodeGen::DoOsrEntry(LOsrEntry* instr) {
2141 Abort("DoOsrEntry unimplemented."); 2161 Abort("DoOsrEntry unimplemented.");
2142 } 2162 }
2143 2163
2144 2164
2145 #undef __ 2165 #undef __
2146 2166
2147 } } // namespace v8::internal 2167 } } // namespace v8::internal
OLDNEW
« src/arm/lithium-arm.cc ('K') | « src/arm/lithium-codegen-arm.h ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698