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

Side by Side Diff: src/arm/debug-arm.cc

Issue 15085026: ARM: Smi refactoring and improvements. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 7 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
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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 ASSERT((object_regs & non_object_regs) == 0); 125 ASSERT((object_regs & non_object_regs) == 0);
126 if ((object_regs | non_object_regs) != 0) { 126 if ((object_regs | non_object_regs) != 0) {
127 for (int i = 0; i < kNumJSCallerSaved; i++) { 127 for (int i = 0; i < kNumJSCallerSaved; i++) {
128 int r = JSCallerSavedCode(i); 128 int r = JSCallerSavedCode(i);
129 Register reg = { r }; 129 Register reg = { r };
130 if ((non_object_regs & (1 << r)) != 0) { 130 if ((non_object_regs & (1 << r)) != 0) {
131 if (FLAG_debug_code) { 131 if (FLAG_debug_code) {
132 __ tst(reg, Operand(0xc0000000)); 132 __ tst(reg, Operand(0xc0000000));
133 __ Assert(eq, "Unable to encode value as smi"); 133 __ Assert(eq, "Unable to encode value as smi");
134 } 134 }
135 __ mov(reg, Operand(reg, LSL, kSmiTagSize)); 135 __ SmiTag(reg);
136 } 136 }
137 } 137 }
138 __ stm(db_w, sp, object_regs | non_object_regs); 138 __ stm(db_w, sp, object_regs | non_object_regs);
139 } 139 }
140 140
141 #ifdef DEBUG 141 #ifdef DEBUG
142 __ RecordComment("// Calling from debug break to runtime - come in - over"); 142 __ RecordComment("// Calling from debug break to runtime - come in - over");
143 #endif 143 #endif
144 __ mov(r0, Operand::Zero()); // no arguments 144 __ mov(r0, Operand::Zero()); // no arguments
145 __ mov(r1, Operand(ExternalReference::debug_break(masm->isolate()))); 145 __ mov(r1, Operand(ExternalReference::debug_break(masm->isolate())));
146 146
147 CEntryStub ceb(1); 147 CEntryStub ceb(1);
148 __ CallStub(&ceb); 148 __ CallStub(&ceb);
149 149
150 // Restore the register values from the expression stack. 150 // Restore the register values from the expression stack.
151 if ((object_regs | non_object_regs) != 0) { 151 if ((object_regs | non_object_regs) != 0) {
152 __ ldm(ia_w, sp, object_regs | non_object_regs); 152 __ ldm(ia_w, sp, object_regs | non_object_regs);
153 for (int i = 0; i < kNumJSCallerSaved; i++) { 153 for (int i = 0; i < kNumJSCallerSaved; i++) {
154 int r = JSCallerSavedCode(i); 154 int r = JSCallerSavedCode(i);
155 Register reg = { r }; 155 Register reg = { r };
156 if ((non_object_regs & (1 << r)) != 0) { 156 if ((non_object_regs & (1 << r)) != 0) {
157 __ mov(reg, Operand(reg, LSR, kSmiTagSize)); 157 __ SmiUntag(reg);
158 } 158 }
159 if (FLAG_debug_code && 159 if (FLAG_debug_code &&
160 (((object_regs |non_object_regs) & (1 << r)) == 0)) { 160 (((object_regs |non_object_regs) & (1 << r)) == 0)) {
161 __ mov(reg, Operand(kDebugZapValue)); 161 __ mov(reg, Operand(kDebugZapValue));
162 } 162 }
163 } 163 }
164 } 164 }
165 165
166 // Leave the internal frame. 166 // Leave the internal frame.
167 } 167 }
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 325
326 #undef __ 326 #undef __
327 327
328 328
329 329
330 #endif // ENABLE_DEBUGGER_SUPPORT 330 #endif // ENABLE_DEBUGGER_SUPPORT
331 331
332 } } // namespace v8::internal 332 } } // namespace v8::internal
333 333
334 #endif // V8_TARGET_ARCH_ARM 334 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/codegen-arm.cc ('k') | src/arm/disasm-arm.cc » ('j') | src/arm/macro-assembler-arm.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698