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

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

Issue 3454035: Revert attempt to make heap size 32/64 clean. This change needs to... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 10 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 | « no previous file | src/assembler.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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 for (int i = 0; i < kNumRegisters; i++) { 287 for (int i = 0; i < kNumRegisters; i++) {
288 value = GetRegisterValue(i); 288 value = GetRegisterValue(i);
289 PrintF("%3s: 0x%08x %10d\n", Registers::Name(i), value, value); 289 PrintF("%3s: 0x%08x %10d\n", Registers::Name(i), value, value);
290 } 290 }
291 } else { 291 } else {
292 if (GetValue(arg1, &value)) { 292 if (GetValue(arg1, &value)) {
293 PrintF("%s: 0x%08x %d \n", arg1, value, value); 293 PrintF("%s: 0x%08x %d \n", arg1, value, value);
294 } else if (GetVFPSingleValue(arg1, &svalue)) { 294 } else if (GetVFPSingleValue(arg1, &svalue)) {
295 PrintF("%s: %f \n", arg1, svalue); 295 PrintF("%s: %f \n", arg1, svalue);
296 } else if (GetVFPDoubleValue(arg1, &dvalue)) { 296 } else if (GetVFPDoubleValue(arg1, &dvalue)) {
297 PrintF("%s: %f \n", arg1, dvalue); 297 PrintF("%s: %lf \n", arg1, dvalue);
298 } else { 298 } else {
299 PrintF("%s unrecognized\n", arg1); 299 PrintF("%s unrecognized\n", arg1);
300 } 300 }
301 } 301 }
302 } else { 302 } else {
303 PrintF("print <register>\n"); 303 PrintF("print <register>\n");
304 } 304 }
305 } else if ((strcmp(cmd, "po") == 0) 305 } else if ((strcmp(cmd, "po") == 0)
306 || (strcmp(cmd, "printobject") == 0)) { 306 || (strcmp(cmd, "printobject") == 0)) {
307 if (argc == 2) { 307 if (argc == 2) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 if (argc == next_arg) { 342 if (argc == next_arg) {
343 words = 10; 343 words = 10;
344 } else if (argc == next_arg + 1) { 344 } else if (argc == next_arg + 1) {
345 if (!GetValue(argv[next_arg], &words)) { 345 if (!GetValue(argv[next_arg], &words)) {
346 words = 10; 346 words = 10;
347 } 347 }
348 } 348 }
349 end = cur + words; 349 end = cur + words;
350 350
351 while (cur < end) { 351 while (cur < end) {
352 PrintF(" 0x%08x: 0x%08x %10d\n", 352 PrintF(" 0x%08x: 0x%08x %10d\n", cur, *cur, *cur);
353 reinterpret_cast<intptr_t>(cur), *cur, *cur);
354 cur++; 353 cur++;
355 } 354 }
356 } else if (strcmp(cmd, "disasm") == 0) { 355 } else if (strcmp(cmd, "disasm") == 0) {
357 disasm::NameConverter converter; 356 disasm::NameConverter converter;
358 disasm::Disassembler dasm(converter); 357 disasm::Disassembler dasm(converter);
359 // use a reasonably large buffer 358 // use a reasonably large buffer
360 v8::internal::EmbeddedVector<char, 256> buffer; 359 v8::internal::EmbeddedVector<char, 256> buffer;
361 360
362 byte* cur = NULL; 361 byte* cur = NULL;
363 byte* end = NULL; 362 byte* end = NULL;
(...skipping 12 matching lines...) Expand all
376 int32_t value1; 375 int32_t value1;
377 int32_t value2; 376 int32_t value2;
378 if (GetValue(arg1, &value1) && GetValue(arg2, &value2)) { 377 if (GetValue(arg1, &value1) && GetValue(arg2, &value2)) {
379 cur = reinterpret_cast<byte*>(value1); 378 cur = reinterpret_cast<byte*>(value1);
380 end = cur + (value2 * Instr::kInstrSize); 379 end = cur + (value2 * Instr::kInstrSize);
381 } 380 }
382 } 381 }
383 382
384 while (cur < end) { 383 while (cur < end) {
385 dasm.InstructionDecode(buffer, cur); 384 dasm.InstructionDecode(buffer, cur);
386 PrintF(" 0x%08x %s\n", 385 PrintF(" 0x%08x %s\n", cur, buffer.start());
387 reinterpret_cast<intptr_t>(cur), buffer.start());
388 cur += Instr::kInstrSize; 386 cur += Instr::kInstrSize;
389 } 387 }
390 } else if (strcmp(cmd, "gdb") == 0) { 388 } else if (strcmp(cmd, "gdb") == 0) {
391 PrintF("relinquishing control to gdb\n"); 389 PrintF("relinquishing control to gdb\n");
392 v8::internal::OS::DebugBreak(); 390 v8::internal::OS::DebugBreak();
393 PrintF("regaining control from gdb\n"); 391 PrintF("regaining control from gdb\n");
394 } else if (strcmp(cmd, "break") == 0) { 392 } else if (strcmp(cmd, "break") == 0) {
395 if (argc == 2) { 393 if (argc == 2) {
396 int32_t value; 394 int32_t value;
397 if (GetValue(arg1, &value)) { 395 if (GetValue(arg1, &value)) {
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 uintptr_t Simulator::StackLimit() const { 1054 uintptr_t Simulator::StackLimit() const {
1057 // Leave a safety margin of 256 bytes to prevent overrunning the stack when 1055 // Leave a safety margin of 256 bytes to prevent overrunning the stack when
1058 // pushing values. 1056 // pushing values.
1059 return reinterpret_cast<uintptr_t>(stack_) + 256; 1057 return reinterpret_cast<uintptr_t>(stack_) + 256;
1060 } 1058 }
1061 1059
1062 1060
1063 // Unsupported instructions use Format to print an error and stop execution. 1061 // Unsupported instructions use Format to print an error and stop execution.
1064 void Simulator::Format(Instr* instr, const char* format) { 1062 void Simulator::Format(Instr* instr, const char* format) {
1065 PrintF("Simulator found unsupported instruction:\n 0x%08x: %s\n", 1063 PrintF("Simulator found unsupported instruction:\n 0x%08x: %s\n",
1066 reinterpret_cast<intptr_t>(instr), format); 1064 instr, format);
1067 UNIMPLEMENTED(); 1065 UNIMPLEMENTED();
1068 } 1066 }
1069 1067
1070 1068
1071 // Checks if the current instruction should be executed based on its 1069 // Checks if the current instruction should be executed based on its
1072 // condition bits. 1070 // condition bits.
1073 bool Simulator::ConditionallyExecute(Instr* instr) { 1071 bool Simulator::ConditionallyExecute(Instr* instr) {
1074 switch (instr->ConditionField()) { 1072 switch (instr->ConditionField()) {
1075 case EQ: return z_flag_; 1073 case EQ: return z_flag_;
1076 case NE: return !z_flag_; 1074 case NE: return !z_flag_;
(...skipping 1568 matching lines...) Expand 10 before | Expand all | Expand 10 after
2645 CheckICache(instr); 2643 CheckICache(instr);
2646 } 2644 }
2647 pc_modified_ = false; 2645 pc_modified_ = false;
2648 if (::v8::internal::FLAG_trace_sim) { 2646 if (::v8::internal::FLAG_trace_sim) {
2649 disasm::NameConverter converter; 2647 disasm::NameConverter converter;
2650 disasm::Disassembler dasm(converter); 2648 disasm::Disassembler dasm(converter);
2651 // use a reasonably large buffer 2649 // use a reasonably large buffer
2652 v8::internal::EmbeddedVector<char, 256> buffer; 2650 v8::internal::EmbeddedVector<char, 256> buffer;
2653 dasm.InstructionDecode(buffer, 2651 dasm.InstructionDecode(buffer,
2654 reinterpret_cast<byte*>(instr)); 2652 reinterpret_cast<byte*>(instr));
2655 PrintF(" 0x%08x %s\n", reinterpret_cast<intptr_t>(instr), buffer.start()); 2653 PrintF(" 0x%08x %s\n", instr, buffer.start());
2656 } 2654 }
2657 if (instr->ConditionField() == special_condition) { 2655 if (instr->ConditionField() == special_condition) {
2658 DecodeUnconditional(instr); 2656 DecodeUnconditional(instr);
2659 } else if (ConditionallyExecute(instr)) { 2657 } else if (ConditionallyExecute(instr)) {
2660 switch (instr->TypeField()) { 2658 switch (instr->TypeField()) {
2661 case 0: 2659 case 0:
2662 case 1: { 2660 case 1: {
2663 DecodeType01(instr); 2661 DecodeType01(instr);
2664 break; 2662 break;
2665 } 2663 }
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
2836 uintptr_t address = *stack_slot; 2834 uintptr_t address = *stack_slot;
2837 set_register(sp, current_sp + sizeof(uintptr_t)); 2835 set_register(sp, current_sp + sizeof(uintptr_t));
2838 return address; 2836 return address;
2839 } 2837 }
2840 2838
2841 } } // namespace assembler::arm 2839 } } // namespace assembler::arm
2842 2840
2843 #endif // __arm__ 2841 #endif // __arm__
2844 2842
2845 #endif // V8_TARGET_ARCH_ARM 2843 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698