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

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

Issue 130843008: A64: Add support for floating-point registers in PushSafepointRegistersScope. (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 | « src/a64/assembler-a64.h ('k') | src/a64/macro-assembler-a64.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 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 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 : codegen_(codegen) { 404 : codegen_(codegen) {
405 ASSERT(codegen_->info()->is_calling()); 405 ASSERT(codegen_->info()->is_calling());
406 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple); 406 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
407 codegen_->expected_safepoint_kind_ = kind; 407 codegen_->expected_safepoint_kind_ = kind;
408 408
409 switch (codegen_->expected_safepoint_kind_) { 409 switch (codegen_->expected_safepoint_kind_) {
410 case Safepoint::kWithRegisters: 410 case Safepoint::kWithRegisters:
411 codegen_->masm_->PushSafepointRegisters(); 411 codegen_->masm_->PushSafepointRegisters();
412 break; 412 break;
413 case Safepoint::kWithRegistersAndDoubles: 413 case Safepoint::kWithRegistersAndDoubles:
414 UNIMPLEMENTED(); 414 codegen_->masm_->PushSafepointFPRegisters();
415 codegen_->masm_->PushSafepointRegisters();
415 break; 416 break;
416 default: 417 default:
417 UNREACHABLE(); 418 UNREACHABLE();
418 } 419 }
419 } 420 }
420 421
421 ~PushSafepointRegistersScope() { 422 ~PushSafepointRegistersScope() {
422 Safepoint::Kind kind = codegen_->expected_safepoint_kind_; 423 Safepoint::Kind kind = codegen_->expected_safepoint_kind_;
423 ASSERT((kind & Safepoint::kWithRegisters) != 0); 424 ASSERT((kind & Safepoint::kWithRegisters) != 0);
424 switch (kind) { 425 switch (kind) {
425 case Safepoint::kWithRegisters: 426 case Safepoint::kWithRegisters:
426 codegen_->masm_->PopSafepointRegisters(); 427 codegen_->masm_->PopSafepointRegisters();
427 break; 428 break;
428 case Safepoint::kWithRegistersAndDoubles: 429 case Safepoint::kWithRegistersAndDoubles:
429 UNIMPLEMENTED(); 430 codegen_->masm_->PopSafepointRegisters();
431 codegen_->masm_->PopSafepointFPRegisters();
430 break; 432 break;
431 default: 433 default:
432 UNREACHABLE(); 434 UNREACHABLE();
433 } 435 }
434 codegen_->expected_safepoint_kind_ = Safepoint::kSimple; 436 codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
435 } 437 }
436 438
437 private: 439 private:
438 LCodeGen* codegen_; 440 LCodeGen* codegen_;
439 }; 441 };
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 496
495 protected: 497 protected:
496 MacroAssembler* masm() const { return codegen_->masm(); } 498 MacroAssembler* masm() const { return codegen_->masm(); }
497 499
498 LCodeGen* codegen_; 500 LCodeGen* codegen_;
499 }; 501 };
500 502
501 } } // namespace v8::internal 503 } } // namespace v8::internal
502 504
503 #endif // V8_A64_LITHIUM_CODEGEN_A64_H_ 505 #endif // V8_A64_LITHIUM_CODEGEN_A64_H_
OLDNEW
« no previous file with comments | « src/a64/assembler-a64.h ('k') | src/a64/macro-assembler-a64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698