| OLD | NEW |
| 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 are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // 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 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 | 223 |
| 224 // ----------------------------------------------------------------------------- | 224 // ----------------------------------------------------------------------------- |
| 225 // Machine instruction Operands | 225 // Machine instruction Operands |
| 226 | 226 |
| 227 enum ScaleFactor { | 227 enum ScaleFactor { |
| 228 times_1 = 0, | 228 times_1 = 0, |
| 229 times_2 = 1, | 229 times_2 = 1, |
| 230 times_4 = 2, | 230 times_4 = 2, |
| 231 times_8 = 3, | 231 times_8 = 3, |
| 232 times_pointer_size = times_4, | 232 times_pointer_size = times_4, |
| 233 two_times_pointer_size = times_8, | |
| 234 times_half_pointer_size = times_2 | 233 times_half_pointer_size = times_2 |
| 235 }; | 234 }; |
| 236 | 235 |
| 237 | 236 |
| 238 class Operand BASE_EMBEDDED { | 237 class Operand BASE_EMBEDDED { |
| 239 public: | 238 public: |
| 240 // reg | 239 // reg |
| 241 INLINE(explicit Operand(Register reg)); | 240 INLINE(explicit Operand(Register reg)); |
| 242 | 241 |
| 243 // [disp/r] | 242 // [disp/r] |
| (...skipping 22 matching lines...) Expand all Loading... |
| 266 RelocInfo::EXTERNAL_REFERENCE); | 265 RelocInfo::EXTERNAL_REFERENCE); |
| 267 } | 266 } |
| 268 | 267 |
| 269 static Operand StaticArray(Register index, | 268 static Operand StaticArray(Register index, |
| 270 ScaleFactor scale, | 269 ScaleFactor scale, |
| 271 const ExternalReference& arr) { | 270 const ExternalReference& arr) { |
| 272 return Operand(index, scale, reinterpret_cast<int32_t>(arr.address()), | 271 return Operand(index, scale, reinterpret_cast<int32_t>(arr.address()), |
| 273 RelocInfo::EXTERNAL_REFERENCE); | 272 RelocInfo::EXTERNAL_REFERENCE); |
| 274 } | 273 } |
| 275 | 274 |
| 276 static Operand StaticArray(Register index, | |
| 277 ScaleFactor scale, | |
| 278 const ExternalReference& arr, | |
| 279 int32_t disp) { | |
| 280 return Operand(index, | |
| 281 scale, | |
| 282 reinterpret_cast<int32_t>(arr.address() + disp), | |
| 283 RelocInfo::EXTERNAL_REFERENCE); | |
| 284 } | |
| 285 | |
| 286 | |
| 287 // Returns true if this Operand is a wrapper for the specified register. | 275 // Returns true if this Operand is a wrapper for the specified register. |
| 288 bool is_reg(Register reg) const; | 276 bool is_reg(Register reg) const; |
| 289 | 277 |
| 290 private: | 278 private: |
| 291 byte buf_[6]; | 279 byte buf_[6]; |
| 292 // The number of bytes in buf_. | 280 // The number of bytes in buf_. |
| 293 unsigned int len_; | 281 unsigned int len_; |
| 294 // Only valid if len_ > 4. | 282 // Only valid if len_ > 4. |
| 295 RelocInfo::Mode rmode_; | 283 RelocInfo::Mode rmode_; |
| 296 | 284 |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 private: | 894 private: |
| 907 Assembler* assembler_; | 895 Assembler* assembler_; |
| 908 #ifdef DEBUG | 896 #ifdef DEBUG |
| 909 int space_before_; | 897 int space_before_; |
| 910 #endif | 898 #endif |
| 911 }; | 899 }; |
| 912 | 900 |
| 913 } } // namespace v8::internal | 901 } } // namespace v8::internal |
| 914 | 902 |
| 915 #endif // V8_IA32_ASSEMBLER_IA32_H_ | 903 #endif // V8_IA32_ASSEMBLER_IA32_H_ |
| OLD | NEW |