text: /*
   * This file is part of the UCB release of Plan 9. It is subject to the license
   * terms in the LICENSE file found in the top-level directory of this
   * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
   * part of the UCB release of Plan 9, including this file, may be copied,
   * modified, propagated, or distributed except according to the terms contained
   * in the LICENSE file.
   */
  
  struct Ureg {
  	uint64_t	ax;
  	uint64_t	bx;
  	uint64_t	cx;
  	uint64_t	dx;
  	uint64_t	si;
  	uint64_t	di;
  	uint64_t	bp;
  	uint64_t	r8;
  	uint64_t	r9;
  	uint64_t	r10;
  	uint64_t	r11;
  	uint64_t	r12;
  	uint64_t	r13;
  	uint64_t	r14;
  	uint64_t	r15;
  
    // these are pointless and I don't want to waste a second on them.
    // I'm sure it will break something but let's see.
    // Not pushing them simplifies the interrupt handler a lot.
    //	uint16_t	ds;
    //	uint16_t	es;
    //	uint16_t	fs;
    //	uint16_t	gs;
  
  	uint64_t	type;
  	uint64_t	error;			/* error code (or zero) */
  	uint64_t	ip;				/* pc */
  	uint64_t	cs;				/* old context */
  	uint64_t	flags;			/* old flags */
  	uint64_t	sp;				/* sp */
  	uint64_t	ss;				/* old stack segment */
  };
  