cris-volatile-1.c

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 73 行

C
73
字号
/* Copyright (C) 2003  Free Software Foundation.   Check that size-optimizations for move insns (specifically peephole   optimizations) aren't applied to volatile objects in the CRIS port.   Origin: Hans-Peter Nilsson.  *//* { dg-do compile { target cris-*-* } } *//* { dg-final { scan-assembler-not {movu\...\[} } } *//* { dg-final { scan-assembler-not {move\.[^d].\[} } } *//* { dg-final { scan-assembler-not {and\.[^d].\[} } } *//* { dg-final { scan-assembler-not {or\.[^d].\[} } } */static const unsigned long c = 0x0000FF00;unsigned longa1 (void){  unsigned long m;  m = *(volatile unsigned long*) 0xb00000c8;  m &= c;  return m;}extern volatile unsigned long xx;unsigned longa2 (void){  unsigned long m;  m = xx;  m &= c;  return m;}extern volatile unsigned long yy[];unsigned longa3 (void){  unsigned long m;  m = yy[3];  m &= 0xfe00;  return m;}unsigned longac1 (void){  unsigned long m;  m = *(volatile unsigned long*) 0xb00000c8;  m &= 0xfe00;  return m;}extern volatile unsigned long xx;unsigned longac2 (void){  unsigned long m;  m = xx;  m &= 0xfe00;  return m;}extern volatile unsigned long yy[];unsigned longac3 (void){  unsigned long m;  m = yy[3];  m &= 0xfe00;  return m;}extern volatile unsigned long yy[];unsigned longoc3 (void){  unsigned long m;  m = yy[3];  m |= ~0xf;  return m;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?