#include "src/torque/cc-generator.h"
#include <optional>
#include "src/common/globals.h"
#include "src/torque/global-context.h"
#include "src/torque/type-oracle.h"
#include "src/torque/types.h"
#include "src/torque/utils.h"
namespace v8::internal::torque {
std::optional<Stack<std::string>> CCGenerator::EmitGraph(
Stack<std::string> parameters) { … }
Stack<std::string> CCGenerator::EmitBlock(const Block* block) { … }
void CCGenerator::EmitSourcePosition(SourcePosition pos, bool always_emit) { … }
void CCGenerator::EmitInstruction(
const PushUninitializedInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(
const PushBuiltinPointerInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(
const NamespaceConstantInstruction& instruction,
Stack<std::string>* stack) { … }
std::vector<std::string> CCGenerator::ProcessArgumentsCommon(
const TypeVector& parameter_types,
std::vector<std::string> constexpr_arguments, Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const CallIntrinsicInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const CallCsaMacroInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(
const CallCsaMacroAndBranchInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const MakeLazyNodeInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const CallBuiltinInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(
const CallBuiltinPointerInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const CallRuntimeInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const BranchInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const ConstexprBranchInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitGoto(const Block* destination, Stack<std::string>* stack,
std::string indentation) { … }
void CCGenerator::EmitInstruction(const GotoInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const GotoExternalInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const ReturnInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const PrintErrorInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const AbortInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const UnsafeCastInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const LoadReferenceInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const StoreReferenceInstruction& instruction,
Stack<std::string>* stack) { … }
namespace {
std::string GetBitFieldSpecialization(const Type* container,
const BitField& field) { … }
}
void CCGenerator::EmitInstruction(const LoadBitFieldInstruction& instruction,
Stack<std::string>* stack) { … }
void CCGenerator::EmitInstruction(const StoreBitFieldInstruction& instruction,
Stack<std::string>* stack) { … }
namespace {
void CollectAllFields(const VisitResult& result,
const Stack<std::string>& values,
std::vector<std::string>& all_fields) { … }
}
void CCGenerator::EmitCCValue(VisitResult result,
const Stack<std::string>& values,
std::ostream& out) { … }
}