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/ia32/builtins-ia32.cc

Issue 10701054: Enable stub generation using Hydrogen/Lithium (again) (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: First pass at pre-VFP2 RA Created 8 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 556 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 GenerateMakeCodeYoungAgainCommon(masm); \ 567 GenerateMakeCodeYoungAgainCommon(masm); \
568 } \ 568 } \
569 void Builtins::Generate_Make##C##CodeYoungAgainOddMarking( \ 569 void Builtins::Generate_Make##C##CodeYoungAgainOddMarking( \
570 MacroAssembler* masm) { \ 570 MacroAssembler* masm) { \
571 GenerateMakeCodeYoungAgainCommon(masm); \ 571 GenerateMakeCodeYoungAgainCommon(masm); \
572 } 572 }
573 CODE_AGE_LIST(DEFINE_CODE_AGE_BUILTIN_GENERATOR) 573 CODE_AGE_LIST(DEFINE_CODE_AGE_BUILTIN_GENERATOR)
574 #undef DEFINE_CODE_AGE_BUILTIN_GENERATOR 574 #undef DEFINE_CODE_AGE_BUILTIN_GENERATOR
575 575
576 576
577 void Builtins::Generate_NotifyICMiss(MacroAssembler* masm) {
578 // Enter an internal frame.
579 {
580 FrameScope scope(masm, StackFrame::INTERNAL);
581
582 // Preserve registers across notification this is important compiled stubs
583 // that tail call the runtime on deopts passing their parameters in
584 // registers.
585 __ pushad();
586 __ CallRuntime(Runtime::kNotifyICMiss, 0);
587 __ popad();
588 // Tear down internal frame.
589 }
590
591 __ ret(1 * kPointerSize);
592 }
593
594
577 static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm, 595 static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm,
578 Deoptimizer::BailoutType type) { 596 Deoptimizer::BailoutType type) {
579 { 597 {
580 FrameScope scope(masm, StackFrame::INTERNAL); 598 FrameScope scope(masm, StackFrame::INTERNAL);
581 599
582 // Pass deoptimization type to the runtime system. 600 // Pass deoptimization type to the runtime system.
583 __ push(Immediate(Smi::FromInt(static_cast<int>(type)))); 601 __ push(Immediate(Smi::FromInt(static_cast<int>(type))));
584 __ CallRuntime(Runtime::kNotifyDeoptimized, 1); 602 __ CallRuntime(Runtime::kNotifyDeoptimized, 1);
585 603
586 // Tear down internal frame. 604 // Tear down internal frame.
(...skipping 1216 matching lines...) Expand 10 before | Expand all | Expand 10 after
1803 Deoptimizer::EntryGenerator generator(masm, Deoptimizer::OSR); 1821 Deoptimizer::EntryGenerator generator(masm, Deoptimizer::OSR);
1804 generator.Generate(); 1822 generator.Generate();
1805 } 1823 }
1806 1824
1807 1825
1808 #undef __ 1826 #undef __
1809 } 1827 }
1810 } // namespace v8::internal 1828 } // namespace v8::internal
1811 1829
1812 #endif // V8_TARGET_ARCH_IA32 1830 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698