llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
emitter
ppc
ppcruntime_printer.h
1
// This file if part of the llir-opt project.
2
// Licensing information can be found in the LICENSE file.
3
// (C) 2018 Nandor Licker. All rights reserved.
4
5
#pragma once
6
7
#include <llvm/Pass.h>
8
#include <llvm/MC/MCObjectFileInfo.h>
9
#include <llvm/MC/MCStreamer.h>
10
#include <llvm/Target/PowerPC/PPCSubtarget.h>
11
12
#include "emitter/runtime_printer.h"
13
14
class
Prog
;
15
class
Data
;
16
17
18
22
class
PPCRuntimePrinter
final :
public
RuntimePrinter
{
23
public
:
24
static
char
ID
;
25
27
PPCRuntimePrinter
(
28
const
Prog
&prog,
29
const
llvm::TargetMachine &tm,
30
llvm::MCContext &ctx,
31
llvm::MCStreamer &os,
32
const
llvm::MCObjectFileInfo &objInfo,
33
bool
shared
34
);
35
36
private
:
38
llvm::StringRef getPassName()
const override
;
39
40
private
:
42
void
EmitCamlCallGc(llvm::Function &F)
override
;
44
void
EmitCamlCCall(llvm::Function &F)
override
;
45
46
private
:
48
llvm::MCSymbol *LowerSymbol(
const
char
*name);
50
void
EmitFunctionStart(
51
const
char
*name,
52
const
llvm::PPCSubtarget &sti
53
);
55
void
LoadCamlState(llvm::Register state,
const
llvm::PPCSubtarget &sti);
57
void
StoreState(
58
llvm::Register state,
59
llvm::Register val,
60
const
char
*name,
61
const
llvm::PPCSubtarget &sti
62
);
64
void
LoadState(
65
llvm::Register state,
66
llvm::Register val,
67
const
char
*name,
68
const
llvm::PPCSubtarget &sti
69
);
70
};
Data
Definition:
data.h:47
ID
Definition:
id.h:19
Prog
Definition:
prog.h:33
PPCRuntimePrinter
Definition:
ppcruntime_printer.h:22
RuntimePrinter
Definition:
runtime_printer.h:20
PPCRuntimePrinter::PPCRuntimePrinter
PPCRuntimePrinter(const Prog &prog, const llvm::TargetMachine &tm, llvm::MCContext &ctx, llvm::MCStreamer &os, const llvm::MCObjectFileInfo &objInfo, bool shared)
Initialises the pass which prints data sections.
Definition:
ppcruntime_printer.cpp:36
Generated by
1.8.17