1
0

ureg.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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 ra;
  12. uintptr_t sp;
  13. uintptr_t gp;
  14. uintptr_t tp;
  15. uintptr_t t0;
  16. uintptr_t t1;
  17. uintptr_t t2;
  18. uintptr_t s0; // NOTE: this is the bp in gcc with -fno-omit-frame-pointer
  19. uintptr_t s1;
  20. uintptr_t a0;
  21. uintptr_t a1;
  22. uintptr_t a2;
  23. uintptr_t a3;
  24. uintptr_t a4;
  25. uintptr_t a5;
  26. uintptr_t a6;
  27. uintptr_t a7;
  28. uintptr_t s2;
  29. uintptr_t s3;
  30. uintptr_t s4;
  31. uintptr_t s5;
  32. uintptr_t s6;
  33. uintptr_t s7;
  34. uintptr_t s8;
  35. uintptr_t s9;
  36. uintptr_t s10;
  37. uintptr_t s11;
  38. uintptr_t t3;
  39. uintptr_t t4;
  40. uintptr_t t5;
  41. uintptr_t t6;
  42. /* Supervisor CSRs */
  43. uintptr_t sstatus;
  44. uintptr_t sbadaddr;
  45. uintptr_t scause;
  46. uintptr_t bp; // BOGUS: need a real frame pointer here.
  47. };