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

Side by Side Diff: src/arm/code-stubs-arm.cc

Issue 11037023: Use movw/movt instead of constant pool on ARMv7 (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix nits Created 8 years, 2 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/arm/assembler-arm-inl.h ('k') | src/arm/debug-arm.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 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 7551 matching lines...) Expand 10 before | Expand all | Expand 10 after
7562 __ StoreNumberToDoubleElements(r0, r3, r1, 7562 __ StoreNumberToDoubleElements(r0, r3, r1,
7563 // Overwrites all regs after this. 7563 // Overwrites all regs after this.
7564 r5, r6, r7, r9, r2, 7564 r5, r6, r7, r9, r2,
7565 &slow_elements); 7565 &slow_elements);
7566 __ Ret(); 7566 __ Ret();
7567 } 7567 }
7568 7568
7569 7569
7570 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { 7570 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) {
7571 if (entry_hook_ != NULL) { 7571 if (entry_hook_ != NULL) {
7572 PredictableCodeSizeScope predictable(masm);
7572 ProfileEntryHookStub stub; 7573 ProfileEntryHookStub stub;
7573 __ push(lr); 7574 __ push(lr);
7574 __ CallStub(&stub); 7575 __ CallStub(&stub);
7575 __ pop(lr); 7576 __ pop(lr);
7576 } 7577 }
7577 } 7578 }
7578 7579
7579 7580
7580 void ProfileEntryHookStub::Generate(MacroAssembler* masm) { 7581 void ProfileEntryHookStub::Generate(MacroAssembler* masm) {
7581 // The entry hook is a "push lr" instruction, followed by a call. 7582 // The entry hook is a "push lr" instruction, followed by a call.
7582 const int32_t kReturnAddressDistanceFromFunctionStart = 7583 const int32_t kReturnAddressDistanceFromFunctionStart =
7583 Assembler::kCallTargetAddressOffset + Assembler::kInstrSize; 7584 3 * Assembler::kInstrSize;
7584 7585
7585 // Save live volatile registers. 7586 // Save live volatile registers.
7586 __ Push(lr, r5, r1); 7587 __ Push(lr, r5, r1);
7587 const int32_t kNumSavedRegs = 3; 7588 const int32_t kNumSavedRegs = 3;
7588 7589
7589 // Compute the function's address for the first argument. 7590 // Compute the function's address for the first argument.
7590 __ sub(r0, lr, Operand(kReturnAddressDistanceFromFunctionStart)); 7591 __ sub(r0, lr, Operand(kReturnAddressDistanceFromFunctionStart));
7591 7592
7592 // The caller's return address is above the saved temporaries. 7593 // The caller's return address is above the saved temporaries.
7593 // Grab that for the second argument to the hook. 7594 // Grab that for the second argument to the hook.
(...skipping 29 matching lines...) Expand all
7623 7624
7624 __ Pop(lr, r5, r1); 7625 __ Pop(lr, r5, r1);
7625 __ Ret(); 7626 __ Ret();
7626 } 7627 }
7627 7628
7628 #undef __ 7629 #undef __
7629 7630
7630 } } // namespace v8::internal 7631 } } // namespace v8::internal
7631 7632
7632 #endif // V8_TARGET_ARCH_ARM 7633 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/assembler-arm-inl.h ('k') | src/arm/debug-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698