📄 asm_sprt.h
字号:
/************************************************************************
*
* asm_sprt.h
*
* (c) Copyright 2001-2004 Analog Devices, Inc. All rights reserved.
* $Revision: 1.10 $
************************************************************************/
#ifndef __ASM_SPRT_DEFINED
#define __ASM_SPRT_DEFINED
#if !defined(__ECC__) /* Don't parse for C code */
//#define entry /* nothing */
//#define leaf_entry /* nothing */
//#ifdef __ADSP21020__
//#define ccall(x) r2=i6; i6=i7; jump (pc, x) (db); dm(i7,m7)=r2; dm(i7,m7)=PC
//#define leaf_exit i12=dm(m7,i6); jump (m14,i12) (db); i7=i6; i6=dm(0,I6)
//#define exit leaf_exit
//#else
//#define ccall(x) cjump (x) (DB); dm(i7,m7)=r2; dm(i7,m7)=PC
//#ifdef __ADSP21160__
//#define leaf_exit i12=dm(m7,i6); jump (m14,i12) (db); i7=i6; i6=dm(0,I6);
//#else
//#define leaf_exit i12=dm(m7,i6); jump (m14,i12) (db); nop; RFRAME
//#endif
//#define exit leaf_exit
//#endif
//#define reads(x) dm(x, i6)
//#define puts dm(i7, m7)
//#define gets(x) dm(x, i7)
//#define alter(x) modify(i7, x)
//#define save_reg puts=r0;\
// puts=r1;\
// puts=r2;\
// puts=r3;\
// puts=r4;\
// puts=r5;\
// puts=r6;\
// puts=r7;\
// puts=r8;\
// puts=r9;\
// puts=r10;\
// puts=r11;\
// puts=r12;\
// puts=r13;\
// puts=r14;\
// puts=r15
//#define restore_reg r15=gets(1);\
// r14=gets(2);\
// r13=gets(3);\
// r12=gets(4);\
// r11=gets(5);\
// r10=gets(6);\
// r9 =gets(7);\
// r8 =gets(8);\
// r7 =gets(9);\
// r6 =gets(10);\
// r5 =gets(11);\
// r4 =gets(12);\
// r3 =gets(13);\
// r2 =gets(14);\
// r1 =gets(15);\
// r0 =gets(16);\
// alter(16)
#define entry j26 = j27 - 0X40; k26 = k27 - 0x40;;\
[j27+= 0xFFFFFFF0] = cjmp; k27 = k27 -0xF;; \
q[j27 + 12] = j23:20; q[k27 +12] = k23:20;; \
q[j27 + 8] = j19:16; q[k27 +8] = k19:16;; \
q[j27 + 4] = XR31:28; q[k27 +4] = YR31:28;; \
q[j27 += -4] = XR27:24; q[k27 += -4] = YR27:24;
#define leaf_entry j26 = j27 - 0X40; k26 = k27 - 0x40;;\
j27 = j27 - 0x10; k27 = k27 - 0x10;; \
q[j27 + 12] = j23:20; q[k27 +12] = k23:20;; \
q[j27 + 8] = j19:16; q[k27 +8] = k19:16;; \
q[j27 + 4] = XR31:28; q[k27 +4] = YR31:28;; \
q[j27 += -4] = XR27:24; q[k27 += -4] = YR27:24;
#define leaf_exit XR27:24 = q[j27 + 4]; YR27:24 = q[k27 + 4];;\
XR31:28 = q[j27 + 8]; YR31:28 = q[k27 + 8];;\
j19:16 = q[j27 + 12]; k19:16 = q[k27 + 12];;\
j23:20 = q[j27 + 16]; k23:20 = q[k27 + 16];;\
cjmp(ABS)(np); j27:24 = q[j26+68]; k27:24 = q[k26+68];
#define exit XR27:24 = q[j27 + 4]; YR27:24 = q[k27 + 4];;\
XR31:28 = q[j27 + 8]; YR31:28 = q[k27 + 8];;\
j19:16 = q[j27 + 12]; k19:16 = q[k27 + 12];;\
j23:20 = q[j27 + 16]; k23:20 = q[k27 + 16];;\
cjmp = [j26+64];;\
cjmp(ABS)(np); j27:24 = q[j26+68]; k27:24 = q[k26+68];
#define puts [j27+=-4]
#define lputs l[j27+=-4]
#define qputs q[j27+=-4]
#define puts_jstack puts
#define lputs_jstack lputs
#define qputs_jstack qputs
#define puts_kstack [k27+=-4]
#define lputs_kstack l[k27+=-4]
#define qputs_kstack q[k27+=-4]
#define gets(x) [j27+(4*x)];
#define lgets(x) l[j27+(4*x)];
#define qgets(x) q[j27+(4*x)];
#define gets_jstack(x) gets(x)
#define lgets_jstack(x) lgets(x)
#define qgets_jstack(x) qgets(x)
#define gets_kstack(x) [k27+(4*x)];
#define lgets_kstack(x) l[k27+(4*x)];
#define qgets_kstack(x) q[k27+(4*x)];
#define alter(x) j27= j27+x;
#define alter_jstack(x) alter(x)
#define alter_kstack(x) k27 = k27+x;
#define reads(x) [j26+ (0x4B+x)];
#define save_reg qputs_jstack = xr3:0; qputs_kstack = yr3:0;;\
qputs_jstack = xr7:4; qputs_kstack = yr7:4;;\
qputs_jstack = xr11:8; qputs_kstack = yr11:8;;\
qputs_jstack = xr15:12; qputs_kstack = yr15:12;;\
qputs_jstack = xr19:16; qputs_kstack = yr19:16;;\
qputs_jstack = xr23:20; qputs_kstack = yr23:20;;\
qputs_jstack = xr27:24; qputs_kstack = yr27:24;;\
qputs_jstack = xr31:28; qputs_kstack = yr31:28;
#define restore_reg xr31:28 = qgets_jstack(1) yr31:28 = qgets_kstack(1);\
xr27:24 = qgets_jstack(2) yr27:24 = qgets_kstack(2);\
xr23:20 = qgets_jstack(3) yr23:20 = qgets_kstack(3);\
xr19:16 = qgets_jstack(4) yr19:16 = qgets_kstack(4);\
xr15:12 = qgets_jstack(5) yr15:12 = qgets_kstack(5);\
xr11:8 = qgets_jstack(6) yr11:8 = qgets_kstack(6);\
xr7:4 = qgets_jstack(7) yr7:4 = qgets_kstack(7);\
xr3:0 = qgets_jstack(8) yr3:0 = qgets_kstack(8);\
alter_jstack(32) alter_kstack(32)
#endif /* __ECC__ */
#endif /* __ASM_SPRT_DEFINED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -