| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef V8_X87_MACRO_ASSEMBLER_X87_H_ | 5 #ifndef V8_X87_MACRO_ASSEMBLER_X87_H_ | 
| 6 #define V8_X87_MACRO_ASSEMBLER_X87_H_ | 6 #define V8_X87_MACRO_ASSEMBLER_X87_H_ | 
| 7 | 7 | 
| 8 #include "src/assembler.h" | 8 #include "src/assembler.h" | 
| 9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" | 
| 10 #include "src/frames.h" | 10 #include "src/frames.h" | 
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 594   void AllocateOneByteConsString(Register result, Register scratch1, | 594   void AllocateOneByteConsString(Register result, Register scratch1, | 
| 595                                  Register scratch2, Label* gc_required); | 595                                  Register scratch2, Label* gc_required); | 
| 596 | 596 | 
| 597   // Allocate a raw sliced string object. Only the map field of the result is | 597   // Allocate a raw sliced string object. Only the map field of the result is | 
| 598   // initialized. | 598   // initialized. | 
| 599   void AllocateTwoByteSlicedString(Register result, Register scratch1, | 599   void AllocateTwoByteSlicedString(Register result, Register scratch1, | 
| 600                                    Register scratch2, Label* gc_required); | 600                                    Register scratch2, Label* gc_required); | 
| 601   void AllocateOneByteSlicedString(Register result, Register scratch1, | 601   void AllocateOneByteSlicedString(Register result, Register scratch1, | 
| 602                                    Register scratch2, Label* gc_required); | 602                                    Register scratch2, Label* gc_required); | 
| 603 | 603 | 
|  | 604   // Allocate and initialize a JSValue wrapper with the specified {constructor} | 
|  | 605   // and {value}. | 
|  | 606   void AllocateJSValue(Register result, Register constructor, Register value, | 
|  | 607                        Register scratch, Label* gc_required); | 
|  | 608 | 
| 604   // Copy memory, byte-by-byte, from source to destination.  Not optimized for | 609   // Copy memory, byte-by-byte, from source to destination.  Not optimized for | 
| 605   // long or aligned copies. | 610   // long or aligned copies. | 
| 606   // The contents of index and scratch are destroyed. | 611   // The contents of index and scratch are destroyed. | 
| 607   void CopyBytes(Register source, Register destination, Register length, | 612   void CopyBytes(Register source, Register destination, Register length, | 
| 608                  Register scratch); | 613                  Register scratch); | 
| 609 | 614 | 
| 610   // Initialize fields with filler values.  Fields starting at |current_address| | 615   // Initialize fields with filler values.  Fields starting at |current_address| | 
| 611   // not including |end_address| are overwritten with the value in |filler|.  At | 616   // not including |end_address| are overwritten with the value in |filler|.  At | 
| 612   // the end the loop, |current_address| takes the value of |end_address|. | 617   // the end the loop, |current_address| takes the value of |end_address|. | 
| 613   void InitializeFieldsWithFiller(Register current_address, | 618   void InitializeFieldsWithFiller(Register current_address, | 
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 743     call(self, RelocInfo::CODE_TARGET); | 748     call(self, RelocInfo::CODE_TARGET); | 
| 744   } | 749   } | 
| 745 | 750 | 
| 746   // Move if the registers are not identical. | 751   // Move if the registers are not identical. | 
| 747   void Move(Register target, Register source); | 752   void Move(Register target, Register source); | 
| 748 | 753 | 
| 749   // Move a constant into a destination using the most efficient encoding. | 754   // Move a constant into a destination using the most efficient encoding. | 
| 750   void Move(Register dst, const Immediate& x); | 755   void Move(Register dst, const Immediate& x); | 
| 751   void Move(const Operand& dst, const Immediate& x); | 756   void Move(const Operand& dst, const Immediate& x); | 
| 752 | 757 | 
|  | 758   void Move(Register dst, Smi* source) { Move(dst, Immediate(source)); } | 
|  | 759 | 
| 753   // Push a handle value. | 760   // Push a handle value. | 
| 754   void Push(Handle<Object> handle) { push(Immediate(handle)); } | 761   void Push(Handle<Object> handle) { push(Immediate(handle)); } | 
| 755   void Push(Smi* smi) { Push(Handle<Smi>(smi, isolate())); } | 762   void Push(Smi* smi) { Push(Immediate(smi)); } | 
| 756 | 763 | 
| 757   Handle<Object> CodeObject() { | 764   Handle<Object> CodeObject() { | 
| 758     DCHECK(!code_object_.is_null()); | 765     DCHECK(!code_object_.is_null()); | 
| 759     return code_object_; | 766     return code_object_; | 
| 760   } | 767   } | 
| 761 | 768 | 
| 762   // Insert code to verify that the x87 stack has the specified depth (0-7) | 769   // Insert code to verify that the x87 stack has the specified depth (0-7) | 
| 763   void VerifyX87StackDepth(uint32_t depth); | 770   void VerifyX87StackDepth(uint32_t depth); | 
| 764 | 771 | 
| 765   // Emit code for a truncating division by a constant. The dividend register is | 772   // Emit code for a truncating division by a constant. The dividend register is | 
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 983   }                                                                       \ | 990   }                                                                       \ | 
| 984   masm-> | 991   masm-> | 
| 985 #else | 992 #else | 
| 986 #define ACCESS_MASM(masm) masm-> | 993 #define ACCESS_MASM(masm) masm-> | 
| 987 #endif | 994 #endif | 
| 988 | 995 | 
| 989 }  // namespace internal | 996 }  // namespace internal | 
| 990 }  // namespace v8 | 997 }  // namespace v8 | 
| 991 | 998 | 
| 992 #endif  // V8_X87_MACRO_ASSEMBLER_X87_H_ | 999 #endif  // V8_X87_MACRO_ASSEMBLER_X87_H_ | 
| OLD | NEW | 
|---|