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

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

Issue 11323: Turn ASSERT(!rn.is(ip)) into CHECK so the error can be caught in release mode... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 12 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 uint32_t rotate_imm; 547 uint32_t rotate_imm;
548 uint32_t immed_8; 548 uint32_t immed_8;
549 if ((x.rmode_ != RelocInfo::NONE && 549 if ((x.rmode_ != RelocInfo::NONE &&
550 x.rmode_ != RelocInfo::EXTERNAL_REFERENCE) || 550 x.rmode_ != RelocInfo::EXTERNAL_REFERENCE) ||
551 !fits_shifter(x.imm32_, &rotate_imm, &immed_8, &instr)) { 551 !fits_shifter(x.imm32_, &rotate_imm, &immed_8, &instr)) {
552 // The immediate operand cannot be encoded as a shifter operand, so load 552 // The immediate operand cannot be encoded as a shifter operand, so load
553 // it first to register ip and change the original instruction to use ip. 553 // it first to register ip and change the original instruction to use ip.
554 // However, if the original instruction is a 'mov rd, x' (not setting the 554 // However, if the original instruction is a 'mov rd, x' (not setting the
555 // condition code), then replace it with a 'ldr rd, [pc]' 555 // condition code), then replace it with a 'ldr rd, [pc]'
556 RecordRelocInfo(x.rmode_, x.imm32_); 556 RecordRelocInfo(x.rmode_, x.imm32_);
557 ASSERT(!rn.is(ip)); // rn should never be ip, or will be trashed 557 CHECK(!rn.is(ip)); // rn should never be ip, or will be trashed
558 Condition cond = static_cast<Condition>(instr & CondMask); 558 Condition cond = static_cast<Condition>(instr & CondMask);
559 if ((instr & ~CondMask) == 13*B21) { // mov, S not set 559 if ((instr & ~CondMask) == 13*B21) { // mov, S not set
560 ldr(rd, MemOperand(pc, 0), cond); 560 ldr(rd, MemOperand(pc, 0), cond);
561 } else { 561 } else {
562 ldr(ip, MemOperand(pc, 0), cond); 562 ldr(ip, MemOperand(pc, 0), cond);
563 addrmod1(instr, rn, rd, Operand(ip)); 563 addrmod1(instr, rn, rd, Operand(ip));
564 } 564 }
565 return; 565 return;
566 } 566 }
567 instr |= I | rotate_imm*B8 | immed_8; 567 instr |= I | rotate_imm*B8 | immed_8;
(...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after
1493 bind(&after_pool); 1493 bind(&after_pool);
1494 } 1494 }
1495 1495
1496 // Since a constant pool was just emitted, move the check offset forward by 1496 // Since a constant pool was just emitted, move the check offset forward by
1497 // the standard interval. 1497 // the standard interval.
1498 next_buffer_check_ = pc_offset() + kCheckConstInterval; 1498 next_buffer_check_ = pc_offset() + kCheckConstInterval;
1499 } 1499 }
1500 1500
1501 1501
1502 } } // namespace v8::internal 1502 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698