regsArm.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* regsArm.h - ARM registers */
  2. /* Copyright 1996-1997 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,15apr98,kkk  added reg_pc, reg_sp, and reg_fp.
  7. 01a,08may96,cdp  written, based on I86 version
  8. */
  9. #ifndef __INCregsArmh
  10. #define __INCregsArmh
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. #define GREG_NUM 15 /* has 15 32-bit general registers */
  15. #ifndef _ASMLANGUAGE
  16. /* REG_SET - ARM Register set
  17.  * Note that the exception stack frame relies on the order of items
  18.  * in this so don't change this without changing the ESF and the stub
  19.  * in excALib which creates it.
  20.  */
  21. typedef struct /* REG_SET - ARM register set */
  22.     {
  23.     ULONG r[GREG_NUM]; /* general purpose registers 0-14 */
  24.     INSTR *pc; /* program counter */
  25.     ULONG cpsr; /* current PSR */
  26.     } REG_SET;
  27. #define fpReg r[11] /* frame pointer */
  28. #define spReg r[13] /* stack pointer */
  29. #define reg_pc pc /* program counter */
  30. #define reg_sp spReg /* stack pointer */
  31. #define reg_fp fpReg /* frame pointer */
  32. #endif /* _ASMLANGUAGE */
  33. #define ARM_REG_SIZE 4
  34. #define REG_SET_G_REG_BASE 0x00 /* data reg's base offset to REG_SET */
  35. #define REG_SET_G_REG_OFFSET(n) (REG_SET_G_REG_BASE + (n)*ARM_REG_SIZE)
  36. #define REG_SET_PC_OFFSET (REG_SET_G_REG_OFFSET(GREG_NUM))
  37. #define REG_SET_CPSR_OFFSET (REG_SET_PC_OFFSET + ARM_REG_SIZE)
  38. #define PC_OFFSET REG_SET_PC_OFFSET
  39. #ifdef __cplusplus
  40. }
  41. #endif
  42. #endif /* __INCregsArmh */