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

Side by Side Diff: src/ia32/stub-cache-ia32.cc

Issue 149322: Fix crash that occurs when we're forced to delete a global... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 5 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/objects.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 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 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 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 __ j(not_equal, &miss, not_taken); 1142 __ j(not_equal, &miss, not_taken);
1143 1143
1144 // Get the value from the cell. 1144 // Get the value from the cell.
1145 __ mov(eax, Immediate(Handle<JSGlobalPropertyCell>(cell))); 1145 __ mov(eax, Immediate(Handle<JSGlobalPropertyCell>(cell)));
1146 __ mov(eax, FieldOperand(eax, JSGlobalPropertyCell::kValueOffset)); 1146 __ mov(eax, FieldOperand(eax, JSGlobalPropertyCell::kValueOffset));
1147 1147
1148 // Check for deleted property if property can actually be deleted. 1148 // Check for deleted property if property can actually be deleted.
1149 if (!is_dont_delete) { 1149 if (!is_dont_delete) {
1150 __ cmp(eax, Factory::the_hole_value()); 1150 __ cmp(eax, Factory::the_hole_value());
1151 __ j(equal, &miss, not_taken); 1151 __ j(equal, &miss, not_taken);
1152 } else if (FLAG_debug_code) {
1153 __ cmp(eax, Factory::the_hole_value());
1154 __ Check(not_equal, "DontDelete cells can't contain the hole");
1152 } 1155 }
1153 1156
1154 __ ret(0); 1157 __ ret(0);
1155 1158
1156 __ bind(&miss); 1159 __ bind(&miss);
1157 __ DecrementCounter(&Counters::named_load_global_inline, 1); 1160 __ DecrementCounter(&Counters::named_load_global_inline, 1);
1158 __ IncrementCounter(&Counters::named_load_global_inline_miss, 1); 1161 __ IncrementCounter(&Counters::named_load_global_inline_miss, 1);
1159 GenerateLoadMiss(masm(), Code::LOAD_IC); 1162 GenerateLoadMiss(masm(), Code::LOAD_IC);
1160 1163
1161 // Return the generated code. 1164 // Return the generated code.
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1363 GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC); 1366 GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);
1364 1367
1365 // Return the generated code. 1368 // Return the generated code.
1366 return GetCode(CALLBACKS, name); 1369 return GetCode(CALLBACKS, name);
1367 } 1370 }
1368 1371
1369 1372
1370 #undef __ 1373 #undef __
1371 1374
1372 } } // namespace v8::internal 1375 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698