forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			44 lines
		
	
	
		
			753 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			753 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
 | 
						|
// rdar://9894548
 | 
						|
 | 
						|
typedef unsigned long word_t;
 | 
						|
typedef unsigned long u64_t;
 | 
						|
typedef unsigned int u32_t;
 | 
						|
 | 
						|
class ioapic_redir_t {
 | 
						|
public:
 | 
						|
 union {
 | 
						|
  struct {
 | 
						|
   word_t vector : 8;
 | 
						|
 | 
						|
   word_t delivery_mode : 3;
 | 
						|
   word_t dest_mode : 1;
 | 
						|
 | 
						|
   word_t delivery_status : 1;
 | 
						|
   word_t polarity : 1;
 | 
						|
   word_t irr : 1;
 | 
						|
   word_t trigger_mode : 1;
 | 
						|
 | 
						|
   word_t mask : 1;
 | 
						|
   word_t _pad0 : 15;
 | 
						|
 | 
						|
   word_t dest : 8;
 | 
						|
  };
 | 
						|
  volatile u32_t raw[2];
 | 
						|
  volatile u64_t raw64;
 | 
						|
 };
 | 
						|
};
 | 
						|
 | 
						|
struct ioapic_shadow_struct
 | 
						|
{
 | 
						|
 ioapic_redir_t redirs[24];
 | 
						|
} ioapic_shadow[16];
 | 
						|
 | 
						|
void init_ioapic(unsigned long ioapic_id)
 | 
						|
{
 | 
						|
     ioapic_redir_t entry;
 | 
						|
     ioapic_shadow[ioapic_id].redirs[3] = entry;
 | 
						|
}
 | 
						|
 | 
						|
// CHECK: call void @llvm.memcpy
 |