mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	for a different LLVM present in the system header lookup path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216812 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===- EndianStream.h - Stream ops with endian specific data ----*- C++ -*-===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
// This file defines utilities for operating on streams that have endian
 | 
						|
// specific data.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#ifndef LLVM_SUPPORT_ENDIANSTREAM_H
 | 
						|
#define LLVM_SUPPORT_ENDIANSTREAM_H
 | 
						|
 | 
						|
#include "llvm/Support/Endian.h"
 | 
						|
#include "llvm/Support/raw_ostream.h"
 | 
						|
 | 
						|
namespace llvm {
 | 
						|
namespace support {
 | 
						|
 | 
						|
namespace endian {
 | 
						|
/// Adapter to write values to a stream in a particular byte order.
 | 
						|
template <endianness endian> struct Writer {
 | 
						|
  raw_ostream &OS;
 | 
						|
  Writer(raw_ostream &OS) : OS(OS) {}
 | 
						|
  template <typename value_type> void write(value_type Val) {
 | 
						|
    Val = byte_swap<value_type, endian>(Val);
 | 
						|
    OS.write((const char *)&Val, sizeof(value_type));
 | 
						|
  }
 | 
						|
};
 | 
						|
} // end namespace endian
 | 
						|
 | 
						|
} // end namespace support
 | 
						|
} // end namespace llvm
 | 
						|
 | 
						|
#endif
 |