| 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 | 5 // modification, are permitted provided that the following conditions |
| 6 // are met: | 6 // are 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 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 *m = code_ & 0x1; | 295 *m = code_ & 0x1; |
| 296 *vm = code_ >> 1; | 296 *vm = code_ >> 1; |
| 297 } | 297 } |
| 298 | 298 |
| 299 int code_; | 299 int code_; |
| 300 }; | 300 }; |
| 301 | 301 |
| 302 | 302 |
| 303 // Double word VFP register. | 303 // Double word VFP register. |
| 304 struct DwVfpRegister { | 304 struct DwVfpRegister { |
| 305 static const int kNumRegisters = 32; | 305 static const int kMaxNumRegisters = 32; |
| 306 // A few double registers are reserved: one as a scratch register and one to | 306 // A few double registers are reserved: one as a scratch register and one to |
| 307 // hold 0.0, that does not fit in the immediate field of vmov instructions. | 307 // hold 0.0, that does not fit in the immediate field of vmov instructions. |
| 308 // d14: 0.0 | 308 // d14: 0.0 |
| 309 // d15: scratch register. | 309 // d15: scratch register. |
| 310 static const int kNumReservedRegisters = 2; | 310 static const int kNumReservedRegisters = 2; |
| 311 static const int kMaxNumAllocatableRegisters = kNumRegisters - | 311 static const int kMaxNumAllocatableRegisters = kMaxNumRegisters - |
| 312 kNumReservedRegisters; | 312 kNumReservedRegisters; |
| 313 | 313 |
| 314 // Note: the number of registers can be different at snapshot and run-time. | 314 // Note: the number of registers can be different at snapshot and run-time. |
| 315 // Any code included in the snapshot must be able to run both with 16 or 32 | 315 // Any code included in the snapshot must be able to run both with 16 or 32 |
| 316 // registers. | 316 // registers. |
| 317 inline static int NumRegisters(); | 317 inline static int NumRegisters(); |
| 318 inline static int NumAllocatableRegisters(); | 318 inline static int NumAllocatableRegisters(); |
| 319 | 319 |
| 320 inline static int ToAllocationIndex(DwVfpRegister reg); | 320 inline static int ToAllocationIndex(DwVfpRegister reg); |
| 321 static const char* AllocationIndexToString(int index); | 321 static const char* AllocationIndexToString(int index); |
| 322 inline static DwVfpRegister FromAllocationIndex(int index); | 322 inline static DwVfpRegister FromAllocationIndex(int index); |
| 323 | 323 |
| 324 static DwVfpRegister from_code(int code) { | 324 static DwVfpRegister from_code(int code) { |
| 325 DwVfpRegister r = { code }; | 325 DwVfpRegister r = { code }; |
| 326 return r; | 326 return r; |
| 327 } | 327 } |
| 328 | 328 |
| 329 bool is_valid() const { | 329 bool is_valid() const { |
| 330 return 0 <= code_ && code_ < kNumRegisters; | 330 return 0 <= code_ && code_ < kMaxNumRegisters; |
| 331 } | 331 } |
| 332 bool is(DwVfpRegister reg) const { return code_ == reg.code_; } | 332 bool is(DwVfpRegister reg) const { return code_ == reg.code_; } |
| 333 SwVfpRegister low() const { | 333 SwVfpRegister low() const { |
| 334 ASSERT(code_ < 16); | 334 ASSERT(code_ < 16); |
| 335 SwVfpRegister reg; | 335 SwVfpRegister reg; |
| 336 reg.code_ = code_ * 2; | 336 reg.code_ = code_ * 2; |
| 337 | 337 |
| 338 ASSERT(reg.is_valid()); | 338 ASSERT(reg.is_valid()); |
| 339 return reg; | 339 return reg; |
| 340 } | 340 } |
| (...skipping 1161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1502 public: | 1502 public: |
| 1503 explicit EnsureSpace(Assembler* assembler) { | 1503 explicit EnsureSpace(Assembler* assembler) { |
| 1504 assembler->CheckBuffer(); | 1504 assembler->CheckBuffer(); |
| 1505 } | 1505 } |
| 1506 }; | 1506 }; |
| 1507 | 1507 |
| 1508 | 1508 |
| 1509 } } // namespace v8::internal | 1509 } } // namespace v8::internal |
| 1510 | 1510 |
| 1511 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 1511 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
| OLD | NEW |