cris-volatile-1.c
来自「linux下的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 + -
显示快捷键?