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

Side by Side Diff: src/mips/frames-mips.h

Issue 7809014: MIPS: port ARM: Fix context save/restore for VFP registers. (Closed)
Patch Set: Created 9 years, 3 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 12 matching lines...) Expand all
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 28
29 29
30 #ifndef V8_MIPS_FRAMES_MIPS_H_ 30 #ifndef V8_MIPS_FRAMES_MIPS_H_
31 #define V8_MIPS_FRAMES_MIPS_H_ 31 #define V8_MIPS_FRAMES_MIPS_H_
32 32
33
34 namespace v8 { 33 namespace v8 {
35 namespace internal { 34 namespace internal {
36 35
37 // Register lists. 36 // Register lists.
38 // Note that the bit values must match those used in actual instruction 37 // Note that the bit values must match those used in actual instruction
39 // encoding. 38 // encoding.
40 static const int kNumRegs = 32; 39 static const int kNumRegs = 32;
41 40
42 static const RegList kJSCallerSaved = 41 static const RegList kJSCallerSaved =
43 1 << 2 | // v0 42 1 << 2 | // v0
(...skipping 13 matching lines...) Expand all
57 // Callee-saved registers preserved when switching from C to JavaScript. 56 // Callee-saved registers preserved when switching from C to JavaScript.
58 static const RegList kCalleeSaved = 57 static const RegList kCalleeSaved =
59 // Saved temporaries. 58 // Saved temporaries.
60 1 << 16 | 1 << 17 | 1 << 18 | 1 << 19 | 59 1 << 16 | 1 << 17 | 1 << 18 | 1 << 19 |
61 1 << 20 | 1 << 21 | 1 << 22 | 1 << 23 | 60 1 << 20 | 1 << 21 | 1 << 22 | 1 << 23 |
62 // fp. 61 // fp.
63 1 << 30; 62 1 << 30;
64 63
65 static const int kNumCalleeSaved = 9; 64 static const int kNumCalleeSaved = 9;
66 65
66 static const RegList kCalleeSavedFPU =
67 1 << 20 | 1 << 22 | 1 << 24 | 1 << 26 | 1 << 28 | 1 << 30;
Yang 2011/08/31 12:38:44 Comments similar to those in frames-arm.h would be
Paul Lind 2011/09/01 06:50:27 Done. Refactored the other RegLists too.
68
69 static const int kNumCalleeSavedFPU = 6;
67 70
68 // Number of registers for which space is reserved in safepoints. Must be a 71 // Number of registers for which space is reserved in safepoints. Must be a
69 // multiple of 8. 72 // multiple of 8.
70 // TODO(mips): Only 8 registers may actually be sufficient. Revisit. 73 // TODO(mips): Only 8 registers may actually be sufficient. Revisit.
71 static const int kNumSafepointRegisters = 16; 74 static const int kNumSafepointRegisters = 16;
72 75
73 // Define the list of registers actually saved at safepoints. 76 // Define the list of registers actually saved at safepoints.
74 // Note that the number of saved registers may be smaller than the reserved 77 // Note that the number of saved registers may be smaller than the reserved
75 // space, i.e. kNumSafepointSavedRegisters <= kNumSafepointRegisters. 78 // space, i.e. kNumSafepointSavedRegisters <= kNumSafepointRegisters.
76 static const RegList kSafepointSavedRegisters = kJSCallerSaved | kCalleeSaved; 79 static const RegList kSafepointSavedRegisters = kJSCallerSaved | kCalleeSaved;
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 214
212 inline Object* JavaScriptFrame::function_slot_object() const { 215 inline Object* JavaScriptFrame::function_slot_object() const {
213 const int offset = JavaScriptFrameConstants::kFunctionOffset; 216 const int offset = JavaScriptFrameConstants::kFunctionOffset;
214 return Memory::Object_at(fp() + offset); 217 return Memory::Object_at(fp() + offset);
215 } 218 }
216 219
217 220
218 } } // namespace v8::internal 221 } } // namespace v8::internal
219 222
220 #endif 223 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698