1*962a2479SLang Hames //===------------- MemoryFlags.cpp - Memory allocation flags --------------===//
2*962a2479SLang Hames //
3*962a2479SLang Hames //                     The LLVM Compiler Infrastructure
4*962a2479SLang Hames //
5*962a2479SLang Hames // This file is distributed under the University of Illinois Open Source
6*962a2479SLang Hames // License. See LICENSE.TXT for details.
7*962a2479SLang Hames //
8*962a2479SLang Hames //===----------------------------------------------------------------------===//
9*962a2479SLang Hames 
10*962a2479SLang Hames #include "llvm/ExecutionEngine/JITLink/MemoryFlags.h"
11*962a2479SLang Hames 
12*962a2479SLang Hames #define DEBUG_TYPE "jitlink"
13*962a2479SLang Hames 
14*962a2479SLang Hames namespace llvm {
15*962a2479SLang Hames namespace jitlink {
16*962a2479SLang Hames 
operator <<(raw_ostream & OS,MemProt MP)17*962a2479SLang Hames raw_ostream &operator<<(raw_ostream &OS, MemProt MP) {
18*962a2479SLang Hames   return OS << (((MP & MemProt::Read) != MemProt::None) ? 'R' : '-')
19*962a2479SLang Hames             << (((MP & MemProt::Write) != MemProt::None) ? 'W' : '-')
20*962a2479SLang Hames             << (((MP & MemProt::Exec) != MemProt::None) ? 'X' : '-');
21*962a2479SLang Hames }
22*962a2479SLang Hames 
operator <<(raw_ostream & OS,MemDeallocPolicy MDP)23*962a2479SLang Hames raw_ostream &operator<<(raw_ostream &OS, MemDeallocPolicy MDP) {
24*962a2479SLang Hames   return OS << (MDP == MemDeallocPolicy::Standard ? "standard" : "finalize");
25*962a2479SLang Hames }
26*962a2479SLang Hames 
operator <<(raw_ostream & OS,AllocGroup AG)27*962a2479SLang Hames raw_ostream &operator<<(raw_ostream &OS, AllocGroup AG) {
28*962a2479SLang Hames   return OS << '(' << AG.getMemProt() << ", " << AG.getMemDeallocPolicy()
29*962a2479SLang Hames             << ')';
30*962a2479SLang Hames }
31*962a2479SLang Hames 
32*962a2479SLang Hames } // end namespace jitlink
33*962a2479SLang Hames } // end namespace llvm
34