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

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

Issue 2019003: ldrd/strd Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 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 (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 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 // [rn +/- rm] Offset/NegOffset 440 // [rn +/- rm] Offset/NegOffset
441 // [rn +/- rm]! PreIndex/NegPreIndex 441 // [rn +/- rm]! PreIndex/NegPreIndex
442 // [rn], +/- rm PostIndex/NegPostIndex 442 // [rn], +/- rm PostIndex/NegPostIndex
443 explicit MemOperand(Register rn, Register rm, AddrMode am = Offset); 443 explicit MemOperand(Register rn, Register rm, AddrMode am = Offset);
444 444
445 // [rn +/- rm <shift_op> shift_imm] Offset/NegOffset 445 // [rn +/- rm <shift_op> shift_imm] Offset/NegOffset
446 // [rn +/- rm <shift_op> shift_imm]! PreIndex/NegPreIndex 446 // [rn +/- rm <shift_op> shift_imm]! PreIndex/NegPreIndex
447 // [rn], +/- rm <shift_op> shift_imm PostIndex/NegPostIndex 447 // [rn], +/- rm <shift_op> shift_imm PostIndex/NegPostIndex
448 explicit MemOperand(Register rn, Register rm, 448 explicit MemOperand(Register rn, Register rm,
449 ShiftOp shift_op, int shift_imm, AddrMode am = Offset); 449 ShiftOp shift_op, int shift_imm, AddrMode am = Offset);
450 void set_offset(int32_t offset) {
Erik Corry 2010/05/07 20:04:34 I added single spaces around these functions to ma
451 ASSERT(rm_.is(no_reg));
452 offset_ = offset;
453 }
454 uint32_t offset() {
455 ASSERT(rm_.is(no_reg));
456 return offset_;
457 }
458
459 Register rm() const {return rm_;}
450 460
451 private: 461 private:
452 Register rn_; // base 462 Register rn_; // base
453 Register rm_; // register offset 463 Register rm_; // register offset
454 int32_t offset_; // valid if rm_ == no_reg 464 int32_t offset_; // valid if rm_ == no_reg
455 ShiftOp shift_op_; 465 ShiftOp shift_op_;
456 int shift_imm_; // valid if rm_ != no_reg && rs_ == no_reg 466 int shift_imm_; // valid if rm_ != no_reg && rs_ == no_reg
457 AddrMode am_; // bits P, U, and W 467 AddrMode am_; // bits P, U, and W
458 468
459 friend class Assembler; 469 friend class Assembler;
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 758
749 // Load/Store instructions 759 // Load/Store instructions
750 void ldr(Register dst, const MemOperand& src, Condition cond = al); 760 void ldr(Register dst, const MemOperand& src, Condition cond = al);
751 void str(Register src, const MemOperand& dst, Condition cond = al); 761 void str(Register src, const MemOperand& dst, Condition cond = al);
752 void ldrb(Register dst, const MemOperand& src, Condition cond = al); 762 void ldrb(Register dst, const MemOperand& src, Condition cond = al);
753 void strb(Register src, const MemOperand& dst, Condition cond = al); 763 void strb(Register src, const MemOperand& dst, Condition cond = al);
754 void ldrh(Register dst, const MemOperand& src, Condition cond = al); 764 void ldrh(Register dst, const MemOperand& src, Condition cond = al);
755 void strh(Register src, const MemOperand& dst, Condition cond = al); 765 void strh(Register src, const MemOperand& dst, Condition cond = al);
756 void ldrsb(Register dst, const MemOperand& src, Condition cond = al); 766 void ldrsb(Register dst, const MemOperand& src, Condition cond = al);
757 void ldrsh(Register dst, const MemOperand& src, Condition cond = al); 767 void ldrsh(Register dst, const MemOperand& src, Condition cond = al);
768 void ldrd(Register dst, const MemOperand& src, Condition cond = al);
769 void strd(Register src, const MemOperand& dst, Condition cond = al);
758 770
759 // Load/Store multiple instructions 771 // Load/Store multiple instructions
760 void ldm(BlockAddrMode am, Register base, RegList dst, Condition cond = al); 772 void ldm(BlockAddrMode am, Register base, RegList dst, Condition cond = al);
761 void stm(BlockAddrMode am, Register base, RegList src, Condition cond = al); 773 void stm(BlockAddrMode am, Register base, RegList src, Condition cond = al);
762 774
763 // Semaphore instructions 775 // Semaphore instructions
764 void swp(Register dst, Register src, Register base, Condition cond = al); 776 void swp(Register dst, Register src, Register base, Condition cond = al);
765 void swpb(Register dst, Register src, Register base, Condition cond = al); 777 void swpb(Register dst, Register src, Register base, Condition cond = al);
766 778
767 // Exception-generating instructions and debugging support 779 // Exception-generating instructions and debugging support
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 1119
1108 friend class RegExpMacroAssemblerARM; 1120 friend class RegExpMacroAssemblerARM;
1109 friend class RelocInfo; 1121 friend class RelocInfo;
1110 friend class CodePatcher; 1122 friend class CodePatcher;
1111 friend class BlockConstPoolScope; 1123 friend class BlockConstPoolScope;
1112 }; 1124 };
1113 1125
1114 } } // namespace v8::internal 1126 } } // namespace v8::internal
1115 1127
1116 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1128 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « AUTHORS ('k') | src/arm/assembler-arm.cc » ('j') | src/arm/simulator-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698