ureg.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. struct Ureg {
  10. uintptr_t ip;
  11. uintptr_t sp;
  12. uintptr_t gp;
  13. uintptr_t tp;
  14. uintptr_t t0;
  15. uintptr_t t1;
  16. uintptr_t t2;
  17. uintptr_t s0; // NOTE: this is the bp in gcc with -fno-omit-frame-pointer
  18. uintptr_t s1;
  19. uintptr_t a0;
  20. uintptr_t a1;
  21. uintptr_t a2;
  22. uintptr_t a3;
  23. uintptr_t a4;
  24. uintptr_t a5;
  25. uintptr_t a6;
  26. uintptr_t a7;
  27. uintptr_t s2;
  28. uintptr_t s3;
  29. uintptr_t s4;
  30. uintptr_t s5;
  31. uintptr_t s6;
  32. uintptr_t s7;
  33. uintptr_t s8;
  34. uintptr_t s9;
  35. uintptr_t s10;
  36. uintptr_t s11;
  37. uintptr_t t3;
  38. uintptr_t t4;
  39. uintptr_t t5;
  40. uintptr_t t6;
  41. /* Supervisor CSRs */
  42. uintptr_t status;
  43. uintptr_t epc;
  44. uintptr_t badaddr;
  45. uintptr_t cause;
  46. uintptr_t insnn;
  47. uintptr_t bp; // BOGUS: need a real frame pointer here.
  48. uintptr_t ftype;
  49. };