⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check_addcm.c.svn-base

📁 我们自己开发的一个OSEK操作系统!不知道可不可以?
💻 SVN-BASE
字号:
#include <stdio.h>#include <stdlib.h>#include <stdint.h>#include "sys.h"#include "crisutils.h"/* need to avoid acr as source here.  */extern inline int cris_addc_m(int a, const int *b) {	asm volatile ("addc [%1], %0\n" : "+r" (a) : "r" (b));	return a;}/* 'b' is a crisv32 constrain to avoid postinc with $acr.  */extern inline int cris_addc_pi_m(int a, int **b) {	asm volatile ("addc [%1+], %0\n" : "+r" (a), "+b" (*b));	return a;}#define verify_addc_m(a, b, res, n, z, v, c)  \{                                           \	int r;                              \	r = cris_addc_m((a), (b));            \	cris_tst_cc((n), (z), (v), (c));    \	if (r != (res))                     \		err();                      \}#define verify_addc_pi_m(a, b, res, n, z, v, c)  \{                                           \	int r;                              \	r = cris_addc_pi_m((a), (b));            \	cris_tst_cc((n), (z), (v), (c));    \	if (r != (res))                     \		err();                      \}int x[] = { 0, 0, 2, -1, 0xffff, -1, 0x5432f789};int main(void){	int *p = (void *)&x[0];#if 1	cris_tst_cc_init();	asm volatile ("clearf cz");	verify_addc_m(0, p, 0, 0, 0, 0, 0);	cris_tst_cc_init();	asm volatile ("setf z");	verify_addc_m(0, p, 0, 0, 1, 0, 0);	cris_tst_cc_init();	asm volatile ("setf c");	verify_addc_m(0, p, 1, 0, 0, 0, 0);	cris_tst_cc_init();	asm volatile ("clearf c");	verify_addc_pi_m(0, &p, 0, 0, 1, 0, 0);	p = &x[1];	cris_tst_cc_init();	asm volatile ("setf c");	verify_addc_pi_m(0, &p, 1, 0, 0, 0, 0);	if (p != &x[2])		err();	cris_tst_cc_init();	asm volatile ("clearf c");	verify_addc_pi_m(-1, &p, 1, 0, 0, 0, 1);	if (p != &x[3])		err();#endif	p = &x[3];	/* TODO: investigate why this one fails.  */	cris_tst_cc_init();	asm volatile ("setf c");	verify_addc_m(2, p, 2, 0, 0, 0, 1);	p += 4;	pass();	return 0;}

⌨️ 快捷键说明

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