| OLD | NEW | 
|---|
| 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 61 }; | 61 }; | 
| 62 | 62 | 
| 63 | 63 | 
| 64 class StoreBufferOverflowStub: public PlatformCodeStub { | 64 class StoreBufferOverflowStub: public PlatformCodeStub { | 
| 65  public: | 65  public: | 
| 66   explicit StoreBufferOverflowStub(SaveFPRegsMode save_fp) | 66   explicit StoreBufferOverflowStub(SaveFPRegsMode save_fp) | 
| 67       : save_doubles_(save_fp) {} | 67       : save_doubles_(save_fp) {} | 
| 68 | 68 | 
| 69   void Generate(MacroAssembler* masm); | 69   void Generate(MacroAssembler* masm); | 
| 70 | 70 | 
| 71   virtual bool IsPregenerated(Isolate* isolate) V8_OVERRIDE { return true; } |  | 
| 72   static void GenerateFixedRegStubsAheadOfTime(Isolate* isolate); | 71   static void GenerateFixedRegStubsAheadOfTime(Isolate* isolate); | 
| 73   virtual bool SometimesSetsUpAFrame() { return false; } | 72   virtual bool SometimesSetsUpAFrame() { return false; } | 
| 74 | 73 | 
| 75  private: | 74  private: | 
| 76   SaveFPRegsMode save_doubles_; | 75   SaveFPRegsMode save_doubles_; | 
| 77 | 76 | 
| 78   Major MajorKey() { return StoreBufferOverflow; } | 77   Major MajorKey() { return StoreBufferOverflow; } | 
| 79   int MinorKey() { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; } | 78   int MinorKey() { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; } | 
| 80 }; | 79 }; | 
| 81 | 80 | 
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 224 // so you don't have to set up the frame. | 223 // so you don't have to set up the frame. | 
| 225 class WriteInt32ToHeapNumberStub : public PlatformCodeStub { | 224 class WriteInt32ToHeapNumberStub : public PlatformCodeStub { | 
| 226  public: | 225  public: | 
| 227   WriteInt32ToHeapNumberStub(Register the_int, | 226   WriteInt32ToHeapNumberStub(Register the_int, | 
| 228                              Register the_heap_number, | 227                              Register the_heap_number, | 
| 229                              Register scratch) | 228                              Register scratch) | 
| 230       : the_int_(the_int), | 229       : the_int_(the_int), | 
| 231         the_heap_number_(the_heap_number), | 230         the_heap_number_(the_heap_number), | 
| 232         scratch_(scratch) { } | 231         scratch_(scratch) { } | 
| 233 | 232 | 
| 234   virtual bool IsPregenerated(Isolate* isolate) V8_OVERRIDE; |  | 
| 235   static void GenerateFixedRegStubsAheadOfTime(Isolate* isolate); | 233   static void GenerateFixedRegStubsAheadOfTime(Isolate* isolate); | 
| 236 | 234 | 
| 237  private: | 235  private: | 
| 238   Register the_int_; | 236   Register the_int_; | 
| 239   Register the_heap_number_; | 237   Register the_heap_number_; | 
| 240   Register scratch_; | 238   Register scratch_; | 
| 241 | 239 | 
| 242   // Minor key encoding in 16 bits. | 240   // Minor key encoding in 16 bits. | 
| 243   class IntRegisterBits: public BitField<int, 0, 4> {}; | 241   class IntRegisterBits: public BitField<int, 0, 4> {}; | 
| 244   class HeapNumberRegisterBits: public BitField<int, 4, 4> {}; | 242   class HeapNumberRegisterBits: public BitField<int, 4, 4> {}; | 
| (...skipping 27 matching lines...) Expand all  Loading... | 
| 272               address,  // An input reg. | 270               address,  // An input reg. | 
| 273               value) {  // One scratch reg. | 271               value) {  // One scratch reg. | 
| 274   } | 272   } | 
| 275 | 273 | 
| 276   enum Mode { | 274   enum Mode { | 
| 277     STORE_BUFFER_ONLY, | 275     STORE_BUFFER_ONLY, | 
| 278     INCREMENTAL, | 276     INCREMENTAL, | 
| 279     INCREMENTAL_COMPACTION | 277     INCREMENTAL_COMPACTION | 
| 280   }; | 278   }; | 
| 281 | 279 | 
| 282   virtual bool IsPregenerated(Isolate* isolate) V8_OVERRIDE; |  | 
| 283   static void GenerateFixedRegStubsAheadOfTime(Isolate* isolate); |  | 
| 284   virtual bool SometimesSetsUpAFrame() { return false; } | 280   virtual bool SometimesSetsUpAFrame() { return false; } | 
| 285 | 281 | 
| 286   static void PatchBranchIntoNop(MacroAssembler* masm, int pos) { | 282   static void PatchBranchIntoNop(MacroAssembler* masm, int pos) { | 
| 287     masm->instr_at_put(pos, (masm->instr_at(pos) & ~B27) | (B24 | B20)); | 283     masm->instr_at_put(pos, (masm->instr_at(pos) & ~B27) | (B24 | B20)); | 
| 288     ASSERT(Assembler::IsTstImmediate(masm->instr_at(pos))); | 284     ASSERT(Assembler::IsTstImmediate(masm->instr_at(pos))); | 
| 289   } | 285   } | 
| 290 | 286 | 
| 291   static void PatchNopIntoBranch(MacroAssembler* masm, int pos) { | 287   static void PatchNopIntoBranch(MacroAssembler* masm, int pos) { | 
| 292     masm->instr_at_put(pos, (masm->instr_at(pos) & ~(B24 | B20)) | B27); | 288     masm->instr_at_put(pos, (masm->instr_at(pos) & ~(B24 | B20)) | B27); | 
| 293     ASSERT(Assembler::IsBranch(masm->instr_at(pos))); | 289     ASSERT(Assembler::IsBranch(masm->instr_at(pos))); | 
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 504 | 500 | 
| 505   class LookupModeBits: public BitField<LookupMode, 0, 1> {}; | 501   class LookupModeBits: public BitField<LookupMode, 0, 1> {}; | 
| 506 | 502 | 
| 507   LookupMode mode_; | 503   LookupMode mode_; | 
| 508 }; | 504 }; | 
| 509 | 505 | 
| 510 | 506 | 
| 511 } }  // namespace v8::internal | 507 } }  // namespace v8::internal | 
| 512 | 508 | 
| 513 #endif  // V8_ARM_CODE_STUBS_ARM_H_ | 509 #endif  // V8_ARM_CODE_STUBS_ARM_H_ | 
| OLD | NEW | 
|---|