V8 Project
v8::internal::LCodeGen::BASE_EMBEDDED Class Reference
+ Collaboration diagram for v8::internal::LCodeGen::BASE_EMBEDDED:

Public Member Functions

 PushSafepointRegistersScope (LCodeGen *codegen)
 
 ~PushSafepointRegistersScope ()
 
 PushSafepointRegistersScope (LCodeGen *codegen)
 
 ~PushSafepointRegistersScope ()
 
 PushSafepointRegistersScope (LCodeGen *codegen)
 
 ~PushSafepointRegistersScope ()
 
 PushSafepointRegistersScope (LCodeGen *codegen)
 
 ~PushSafepointRegistersScope ()
 
 PushSafepointRegistersScope (LCodeGen *codegen)
 
 ~PushSafepointRegistersScope ()
 
 PushSafepointRegistersScope (LCodeGen *codegen)
 
 ~PushSafepointRegistersScope ()
 
 PushSafepointRegistersScope (LCodeGen *codegen)
 
 ~PushSafepointRegistersScope ()
 

Private Attributes

LCodeGencodegen_
 

Detailed Description

Definition at line 353 of file lithium-codegen-arm.h.

Constructor & Destructor Documentation

◆ ~PushSafepointRegistersScope() [1/7]

v8::internal::LCodeGen::BASE_EMBEDDED::~PushSafepointRegistersScope ( )
inline

Definition at line 363 of file lithium-codegen-arm.h.

363  {
364  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kWithRegisters);
365  codegen_->masm_->PopSafepointRegisters();
366  codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
367  }
Safepoint::Kind expected_safepoint_kind_
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK.

◆ ~PushSafepointRegistersScope() [2/7]

v8::internal::LCodeGen::BASE_EMBEDDED::~PushSafepointRegistersScope ( )
inline

Definition at line 395 of file lithium-codegen-arm64.h.

395  {
396  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kWithRegisters);
397  RestoreRegistersStateStub stub(codegen_->isolate());
398  codegen_->masm_->CallStub(&stub);
399  codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
400  }

References DCHECK.

◆ ~PushSafepointRegistersScope() [3/7]

v8::internal::LCodeGen::BASE_EMBEDDED::~PushSafepointRegistersScope ( )
inline

Definition at line 365 of file lithium-codegen-ia32.h.

365  {
366  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kWithRegisters);
367  codegen_->masm_->PopSafepointRegisters();
368  codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
369  }

References DCHECK.

◆ ~PushSafepointRegistersScope() [4/7]

v8::internal::LCodeGen::BASE_EMBEDDED::~PushSafepointRegistersScope ( )
inline

Definition at line 396 of file lithium-codegen-mips.h.

396  {
397  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kWithRegisters);
398  RestoreRegistersStateStub stub(codegen_->isolate());
399  codegen_->masm_->push(ra);
400  codegen_->masm_->CallStub(&stub);
401  codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
402  }

References DCHECK.

◆ ~PushSafepointRegistersScope() [5/7]

v8::internal::LCodeGen::BASE_EMBEDDED::~PushSafepointRegistersScope ( )
inline

Definition at line 397 of file lithium-codegen-mips64.h.

397  {
398  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kWithRegisters);
399  RestoreRegistersStateStub stub(codegen_->isolate());
400  codegen_->masm_->push(ra);
401  codegen_->masm_->CallStub(&stub);
402  codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
403  }

References DCHECK.

◆ ~PushSafepointRegistersScope() [6/7]

v8::internal::LCodeGen::BASE_EMBEDDED::~PushSafepointRegistersScope ( )
inline

Definition at line 352 of file lithium-codegen-x64.h.

352  {
353  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kWithRegisters);
354  codegen_->masm_->PopSafepointRegisters();
355  codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
356  }

References DCHECK.

◆ ~PushSafepointRegistersScope() [7/7]

v8::internal::LCodeGen::BASE_EMBEDDED::~PushSafepointRegistersScope ( )
inline

Definition at line 461 of file lithium-codegen-x87.h.

461  {
462  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kWithRegisters);
463  codegen_->masm_->PopSafepointRegisters();
464  codegen_->expected_safepoint_kind_ = Safepoint::kSimple;
465  }

References DCHECK.

Member Function Documentation

◆ PushSafepointRegistersScope() [1/7]

v8::internal::LCodeGen::BASE_EMBEDDED::PushSafepointRegistersScope ( LCodeGen codegen)
inlineexplicit

Definition at line 355 of file lithium-codegen-arm.h.

356  : codegen_(codegen) {
357  DCHECK(codegen_->info()->is_calling());
358  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
359  codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
360  codegen_->masm_->PushSafepointRegisters();
361  }

References DCHECK.

◆ PushSafepointRegistersScope() [2/7]

v8::internal::LCodeGen::BASE_EMBEDDED::PushSafepointRegistersScope ( LCodeGen codegen)
inlineexplicit

Definition at line 379 of file lithium-codegen-arm64.h.

380  : codegen_(codegen) {
381  DCHECK(codegen_->info()->is_calling());
382  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
383  codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
384 
385  UseScratchRegisterScope temps(codegen_->masm_);
386  // Preserve the value of lr which must be saved on the stack (the call to
387  // the stub will clobber it).
388  Register to_be_pushed_lr =
389  temps.UnsafeAcquire(StoreRegistersStateStub::to_be_pushed_lr());
390  codegen_->masm_->Mov(to_be_pushed_lr, lr);
391  StoreRegistersStateStub stub(codegen_->isolate());
392  codegen_->masm_->CallStub(&stub);
393  }
const Register lr

References DCHECK, v8::internal::lr, v8::internal::StoreRegistersStateStub::to_be_pushed_lr(), and v8::internal::UseScratchRegisterScope::UnsafeAcquire().

+ Here is the call graph for this function:

◆ PushSafepointRegistersScope() [3/7]

v8::internal::LCodeGen::BASE_EMBEDDED::PushSafepointRegistersScope ( LCodeGen codegen)
inlineexplicit

Definition at line 357 of file lithium-codegen-ia32.h.

358  : codegen_(codegen) {
359  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
360  codegen_->masm_->PushSafepointRegisters();
361  codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
362  DCHECK(codegen_->info()->is_calling());
363  }

References DCHECK.

◆ PushSafepointRegistersScope() [4/7]

v8::internal::LCodeGen::BASE_EMBEDDED::PushSafepointRegistersScope ( LCodeGen codegen)
inlineexplicit

Definition at line 385 of file lithium-codegen-mips.h.

386  : codegen_(codegen) {
387  DCHECK(codegen_->info()->is_calling());
388  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
389  codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
390 
391  StoreRegistersStateStub stub(codegen_->isolate());
392  codegen_->masm_->push(ra);
393  codegen_->masm_->CallStub(&stub);
394  }

References DCHECK.

◆ PushSafepointRegistersScope() [5/7]

v8::internal::LCodeGen::BASE_EMBEDDED::PushSafepointRegistersScope ( LCodeGen codegen)
inlineexplicit

Definition at line 386 of file lithium-codegen-mips64.h.

387  : codegen_(codegen) {
388  DCHECK(codegen_->info()->is_calling());
389  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
390  codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
391 
392  StoreRegistersStateStub stub(codegen_->isolate());
393  codegen_->masm_->push(ra);
394  codegen_->masm_->CallStub(&stub);
395  }

References DCHECK.

◆ PushSafepointRegistersScope() [6/7]

v8::internal::LCodeGen::BASE_EMBEDDED::PushSafepointRegistersScope ( LCodeGen codegen)
inlineexplicit

Definition at line 344 of file lithium-codegen-x64.h.

345  : codegen_(codegen) {
346  DCHECK(codegen_->info()->is_calling());
347  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
348  codegen_->masm_->PushSafepointRegisters();
349  codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
350  }

References DCHECK.

◆ PushSafepointRegistersScope() [7/7]

v8::internal::LCodeGen::BASE_EMBEDDED::PushSafepointRegistersScope ( LCodeGen codegen)
inlineexplicit

Definition at line 453 of file lithium-codegen-x87.h.

454  : codegen_(codegen) {
455  DCHECK(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
456  codegen_->masm_->PushSafepointRegisters();
457  codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
458  DCHECK(codegen_->info()->is_calling());
459  }

References DCHECK.

Member Data Documentation

◆ codegen_

LCodeGen * v8::internal::LCodeGen::BASE_EMBEDDED::codegen_
private

Definition at line 370 of file lithium-codegen-arm.h.


The documentation for this class was generated from the following files: