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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 inline explicit Immediate(int x); | 330 inline explicit Immediate(int x); |
331 inline explicit Immediate(const ExternalReference& ext); | 331 inline explicit Immediate(const ExternalReference& ext); |
332 inline explicit Immediate(Handle<Object> handle); | 332 inline explicit Immediate(Handle<Object> handle); |
333 inline explicit Immediate(Smi* value); | 333 inline explicit Immediate(Smi* value); |
334 inline explicit Immediate(Address addr); | 334 inline explicit Immediate(Address addr); |
335 | 335 |
336 static Immediate CodeRelativeOffset(Label* label) { | 336 static Immediate CodeRelativeOffset(Label* label) { |
337 return Immediate(label); | 337 return Immediate(label); |
338 } | 338 } |
339 | 339 |
340 bool is_zero() const { return x_ == 0 && rmode_ == RelocInfo::NONE; } | 340 bool is_zero() const { return x_ == 0 && rmode_ == RelocInfo::NONE32; } |
341 bool is_int8() const { | 341 bool is_int8() const { |
342 return -128 <= x_ && x_ < 128 && rmode_ == RelocInfo::NONE; | 342 return -128 <= x_ && x_ < 128 && rmode_ == RelocInfo::NONE32; |
343 } | 343 } |
344 bool is_int16() const { | 344 bool is_int16() const { |
345 return -32768 <= x_ && x_ < 32768 && rmode_ == RelocInfo::NONE; | 345 return -32768 <= x_ && x_ < 32768 && rmode_ == RelocInfo::NONE32; |
346 } | 346 } |
347 | 347 |
348 private: | 348 private: |
349 inline explicit Immediate(Label* value); | 349 inline explicit Immediate(Label* value); |
350 | 350 |
351 int x_; | 351 int x_; |
352 RelocInfo::Mode rmode_; | 352 RelocInfo::Mode rmode_; |
353 | 353 |
354 friend class Assembler; | 354 friend class Assembler; |
355 friend class MacroAssembler; | 355 friend class MacroAssembler; |
(...skipping 19 matching lines...) Expand all Loading... |
375 public: | 375 public: |
376 // XMM reg | 376 // XMM reg |
377 INLINE(explicit Operand(XMMRegister xmm_reg)); | 377 INLINE(explicit Operand(XMMRegister xmm_reg)); |
378 | 378 |
379 // [disp/r] | 379 // [disp/r] |
380 INLINE(explicit Operand(int32_t disp, RelocInfo::Mode rmode)); | 380 INLINE(explicit Operand(int32_t disp, RelocInfo::Mode rmode)); |
381 // disp only must always be relocated | 381 // disp only must always be relocated |
382 | 382 |
383 // [base + disp/r] | 383 // [base + disp/r] |
384 explicit Operand(Register base, int32_t disp, | 384 explicit Operand(Register base, int32_t disp, |
385 RelocInfo::Mode rmode = RelocInfo::NONE); | 385 RelocInfo::Mode rmode = RelocInfo::NONE32); |
386 | 386 |
387 // [base + index*scale + disp/r] | 387 // [base + index*scale + disp/r] |
388 explicit Operand(Register base, | 388 explicit Operand(Register base, |
389 Register index, | 389 Register index, |
390 ScaleFactor scale, | 390 ScaleFactor scale, |
391 int32_t disp, | 391 int32_t disp, |
392 RelocInfo::Mode rmode = RelocInfo::NONE); | 392 RelocInfo::Mode rmode = RelocInfo::NONE32); |
393 | 393 |
394 // [index*scale + disp/r] | 394 // [index*scale + disp/r] |
395 explicit Operand(Register index, | 395 explicit Operand(Register index, |
396 ScaleFactor scale, | 396 ScaleFactor scale, |
397 int32_t disp, | 397 int32_t disp, |
398 RelocInfo::Mode rmode = RelocInfo::NONE); | 398 RelocInfo::Mode rmode = RelocInfo::NONE32); |
399 | 399 |
400 static Operand StaticVariable(const ExternalReference& ext) { | 400 static Operand StaticVariable(const ExternalReference& ext) { |
401 return Operand(reinterpret_cast<int32_t>(ext.address()), | 401 return Operand(reinterpret_cast<int32_t>(ext.address()), |
402 RelocInfo::EXTERNAL_REFERENCE); | 402 RelocInfo::EXTERNAL_REFERENCE); |
403 } | 403 } |
404 | 404 |
405 static Operand StaticArray(Register index, | 405 static Operand StaticArray(Register index, |
406 ScaleFactor scale, | 406 ScaleFactor scale, |
407 const ExternalReference& arr) { | 407 const ExternalReference& arr) { |
408 return Operand(index, scale, reinterpret_cast<int32_t>(arr.address()), | 408 return Operand(index, scale, reinterpret_cast<int32_t>(arr.address()), |
(...skipping 861 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1270 private: | 1270 private: |
1271 Assembler* assembler_; | 1271 Assembler* assembler_; |
1272 #ifdef DEBUG | 1272 #ifdef DEBUG |
1273 int space_before_; | 1273 int space_before_; |
1274 #endif | 1274 #endif |
1275 }; | 1275 }; |
1276 | 1276 |
1277 } } // namespace v8::internal | 1277 } } // namespace v8::internal |
1278 | 1278 |
1279 #endif // V8_IA32_ASSEMBLER_IA32_H_ | 1279 #endif // V8_IA32_ASSEMBLER_IA32_H_ |
OLD | NEW |