OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_LOCATIONS_H_ | 5 #ifndef VM_LOCATIONS_H_ |
6 #define VM_LOCATIONS_H_ | 6 #define VM_LOCATIONS_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/bitfield.h" | 10 #include "vm/bitfield.h" |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 | 366 |
367 Location out() const { | 367 Location out() const { |
368 return output_location_; | 368 return output_location_; |
369 } | 369 } |
370 | 370 |
371 Location* out_slot() { | 371 Location* out_slot() { |
372 return &output_location_; | 372 return &output_location_; |
373 } | 373 } |
374 | 374 |
375 void set_out(Location loc) { | 375 void set_out(Location loc) { |
376 ASSERT(!always_calls() || loc.IsRegister()); | 376 ASSERT(!always_calls() || (loc.IsRegister() || loc.IsInvalid())); |
377 output_location_ = loc; | 377 output_location_ = loc; |
378 } | 378 } |
379 | 379 |
380 BitmapBuilder* stack_bitmap() const { return stack_bitmap_; } | 380 BitmapBuilder* stack_bitmap() const { return stack_bitmap_; } |
381 | 381 |
382 bool always_calls() const { | 382 bool always_calls() const { |
383 return contains_call_ == kCall; | 383 return contains_call_ == kCall; |
384 } | 384 } |
385 | 385 |
386 bool can_call() { | 386 bool can_call() { |
(...skipping 18 matching lines...) Expand all Loading... |
405 BitmapBuilder* stack_bitmap_; | 405 BitmapBuilder* stack_bitmap_; |
406 | 406 |
407 const ContainsCall contains_call_; | 407 const ContainsCall contains_call_; |
408 RegisterSet live_registers_; | 408 RegisterSet live_registers_; |
409 }; | 409 }; |
410 | 410 |
411 | 411 |
412 } // namespace dart | 412 } // namespace dart |
413 | 413 |
414 #endif // VM_LOCATIONS_H_ | 414 #endif // VM_LOCATIONS_H_ |
OLD | NEW |