| OLD | NEW | 
|    1 // Copyright 2009 the V8 project authors. All rights reserved. |    1 // Copyright 2009 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 382 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  393   } |  393   } | 
|  394  |  394  | 
|  395   void Move(const Operand& dst, Smi* source) { |  395   void Move(const Operand& dst, Smi* source) { | 
|  396     Set(dst, reinterpret_cast<int64_t>(source)); |  396     Set(dst, reinterpret_cast<int64_t>(source)); | 
|  397   } |  397   } | 
|  398  |  398  | 
|  399   void Push(Smi* smi); |  399   void Push(Smi* smi); | 
|  400   void Test(const Operand& dst, Smi* source); |  400   void Test(const Operand& dst, Smi* source); | 
|  401  |  401  | 
|  402   // --------------------------------------------------------------------------- |  402   // --------------------------------------------------------------------------- | 
|  403   // Macro instructions |  403   // Macro instructions. | 
|  404  |  404  | 
|  405   // Load a register with a long value as efficiently as possible. |  405   // Load a register with a long value as efficiently as possible. | 
|  406   void Set(Register dst, int64_t x); |  406   void Set(Register dst, int64_t x); | 
|  407   void Set(const Operand& dst, int64_t x); |  407   void Set(const Operand& dst, int64_t x); | 
|  408  |  408  | 
|  409   // Handle support |  409   // Handle support | 
|  410   void Move(Register dst, Handle<Object> source); |  410   void Move(Register dst, Handle<Object> source); | 
|  411   void Move(const Operand& dst, Handle<Object> source); |  411   void Move(const Operand& dst, Handle<Object> source); | 
|  412   void Cmp(Register dst, Handle<Object> source); |  412   void Cmp(Register dst, Handle<Object> source); | 
|  413   void Cmp(const Operand& dst, Handle<Object> source); |  413   void Cmp(const Operand& dst, Handle<Object> source); | 
|  414   void Push(Handle<Object> source); |  414   void Push(Handle<Object> source); | 
 |  415   void Drop(int stack_elements); | 
 |  416   void Call(Label* target) { call(target); } | 
|  415  |  417  | 
|  416   // Control Flow |  418   // Control Flow | 
|  417   void Jump(Address destination, RelocInfo::Mode rmode); |  419   void Jump(Address destination, RelocInfo::Mode rmode); | 
|  418   void Jump(ExternalReference ext); |  420   void Jump(ExternalReference ext); | 
|  419   void Jump(Handle<Code> code_object, RelocInfo::Mode rmode); |  421   void Jump(Handle<Code> code_object, RelocInfo::Mode rmode); | 
|  420  |  422  | 
|  421   void Call(Address destination, RelocInfo::Mode rmode); |  423   void Call(Address destination, RelocInfo::Mode rmode); | 
|  422   void Call(ExternalReference ext); |  424   void Call(ExternalReference ext); | 
|  423   void Call(Handle<Code> code_object, RelocInfo::Mode rmode); |  425   void Call(Handle<Code> code_object, RelocInfo::Mode rmode); | 
|  424  |  426  | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  436   // jcc instructions (je, ja, jae, jb, jbe, je, and jz). |  438   // jcc instructions (je, ja, jae, jb, jbe, je, and jz). | 
|  437   void FCmp(); |  439   void FCmp(); | 
|  438  |  440  | 
|  439   // --------------------------------------------------------------------------- |  441   // --------------------------------------------------------------------------- | 
|  440   // Exception handling |  442   // Exception handling | 
|  441  |  443  | 
|  442   // Push a new try handler and link into try handler chain.  The return |  444   // Push a new try handler and link into try handler chain.  The return | 
|  443   // address must be pushed before calling this helper. |  445   // address must be pushed before calling this helper. | 
|  444   void PushTryHandler(CodeLocation try_location, HandlerType type); |  446   void PushTryHandler(CodeLocation try_location, HandlerType type); | 
|  445  |  447  | 
 |  448   // Unlink the stack handler on top of the stack from the try handler chain. | 
 |  449   void PopTryHandler(); | 
|  446  |  450  | 
|  447   // --------------------------------------------------------------------------- |  451   // --------------------------------------------------------------------------- | 
|  448   // Inline caching support |  452   // Inline caching support | 
|  449  |  453  | 
|  450   // Generates code that verifies that the maps of objects in the |  454   // Generates code that verifies that the maps of objects in the | 
|  451   // prototype chain of object hasn't changed since the code was |  455   // prototype chain of object hasn't changed since the code was | 
|  452   // generated and branches to the miss label if any map has. If |  456   // generated and branches to the miss label if any map has. If | 
|  453   // necessary the function also generates code for security check |  457   // necessary the function also generates code for security check | 
|  454   // in case of global object holders. The scratch and holder |  458   // in case of global object holders. The scratch and holder | 
|  455   // registers are always clobbered, but the object register is only |  459   // registers are always clobbered, but the object register is only | 
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  745   }                                                                       \ |  749   }                                                                       \ | 
|  746   masm-> |  750   masm-> | 
|  747 #else |  751 #else | 
|  748 #define ACCESS_MASM(masm) masm-> |  752 #define ACCESS_MASM(masm) masm-> | 
|  749 #endif |  753 #endif | 
|  750  |  754  | 
|  751  |  755  | 
|  752 } }  // namespace v8::internal |  756 } }  // namespace v8::internal | 
|  753  |  757  | 
|  754 #endif  // V8_X64_MACRO_ASSEMBLER_X64_H_ |  758 #endif  // V8_X64_MACRO_ASSEMBLER_X64_H_ | 
| OLD | NEW |