diff --git a/libc/kernel/uapi/asm-mips/asm/bitfield.h b/libc/kernel/uapi/asm-mips/asm/bitfield.h
index 4b8ac19..dbe56cc 100644
--- a/libc/kernel/uapi/asm-mips/asm/bitfield.h
+++ b/libc/kernel/uapi/asm-mips/asm/bitfield.h
@@ -18,6 +18,6 @@
  ****************************************************************************/
 #ifndef __UAPI_ASM_BITFIELD_H
 #define __UAPI_ASM_BITFIELD_H
-#define __BITFIELD_FIELD(field, more)   more   field;
+#define __BITFIELD_FIELD(field,more) more field;
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/asm-mips/asm/cachectl.h b/libc/kernel/uapi/asm-mips/asm/cachectl.h
index 6cc6f28..86cf3e4 100644
--- a/libc/kernel/uapi/asm-mips/asm/cachectl.h
+++ b/libc/kernel/uapi/asm-mips/asm/cachectl.h
@@ -18,10 +18,10 @@
  ****************************************************************************/
 #ifndef _ASM_CACHECTL
 #define _ASM_CACHECTL
-#define ICACHE (1<<0)
-#define DCACHE (1<<1)
+#define ICACHE (1 << 0)
+#define DCACHE (1 << 1)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BCACHE (ICACHE|DCACHE)
+#define BCACHE (ICACHE | DCACHE)
 #define CACHEABLE 0
 #define UNCACHEABLE 1
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/fcntl.h b/libc/kernel/uapi/asm-mips/asm/fcntl.h
index 02ea3ac..86ad973 100644
--- a/libc/kernel/uapi/asm-mips/asm/fcntl.h
+++ b/libc/kernel/uapi/asm-mips/asm/fcntl.h
@@ -32,7 +32,7 @@
 #define O_LARGEFILE 0x2000
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __O_SYNC 0x4000
-#define O_SYNC (__O_SYNC|O_DSYNC)
+#define O_SYNC (__O_SYNC | O_DSYNC)
 #define O_DIRECT 0x8000
 #define F_GETLK 14
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -51,14 +51,14 @@
 #include <linux/types.h>
 struct flock {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- short l_type;
- short l_whence;
- __kernel_off_t l_start;
- __kernel_off_t l_len;
+  short l_type;
+  short l_whence;
+  __kernel_off_t l_start;
+  __kernel_off_t l_len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long l_sysid;
- __kernel_pid_t l_pid;
- long pad[4];
+  long l_sysid;
+  __kernel_pid_t l_pid;
+  long pad[4];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HAVE_ARCH_STRUCT_FLOCK
diff --git a/libc/kernel/uapi/asm-mips/asm/inst.h b/libc/kernel/uapi/asm-mips/asm/inst.h
index 18b5465..e9b8372 100644
--- a/libc/kernel/uapi/asm-mips/asm/inst.h
+++ b/libc/kernel/uapi/asm-mips/asm/inst.h
@@ -21,906 +21,1030 @@
 #include <asm/bitfield.h>
 enum major_op {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- spec_op, bcond_op, j_op, jal_op,
- beq_op, bne_op, blez_op, bgtz_op,
- addi_op, addiu_op, slti_op, sltiu_op,
- andi_op, ori_op, xori_op, lui_op,
+  spec_op,
+  bcond_op,
+  j_op,
+  jal_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- cop0_op, cop1_op, cop2_op, cop1x_op,
- beql_op, bnel_op, blezl_op, bgtzl_op,
- daddi_op, daddiu_op, ldl_op, ldr_op,
- spec2_op, jalx_op, mdmx_op, spec3_op,
+  beq_op,
+  bne_op,
+  blez_op,
+  bgtz_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- lb_op, lh_op, lwl_op, lw_op,
- lbu_op, lhu_op, lwr_op, lwu_op,
- sb_op, sh_op, swl_op, sw_op,
- sdl_op, sdr_op, swr_op, cache_op,
+  addi_op,
+  addiu_op,
+  slti_op,
+  sltiu_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ll_op, lwc1_op, lwc2_op, pref_op,
- lld_op, ldc1_op, ldc2_op, ld_op,
- sc_op, swc1_op, swc2_op, major_3b_op,
- scd_op, sdc1_op, sdc2_op, sd_op
+  andi_op,
+  ori_op,
+  xori_op,
+  lui_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  cop0_op,
+  cop1_op,
+  cop2_op,
+  cop1x_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  beql_op,
+  bnel_op,
+  blezl_op,
+  bgtzl_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  daddi_op,
+  daddiu_op,
+  ldl_op,
+  ldr_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  spec2_op,
+  jalx_op,
+  mdmx_op,
+  spec3_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  lb_op,
+  lh_op,
+  lwl_op,
+  lw_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  lbu_op,
+  lhu_op,
+  lwr_op,
+  lwu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  sb_op,
+  sh_op,
+  swl_op,
+  sw_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  sdl_op,
+  sdr_op,
+  swr_op,
+  cache_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  ll_op,
+  lwc1_op,
+  lwc2_op,
+  pref_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  lld_op,
+  ldc1_op,
+  ldc2_op,
+  ld_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  sc_op,
+  swc1_op,
+  swc2_op,
+  major_3b_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  scd_op,
+  sdc1_op,
+  sdc2_op,
+  sd_op
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum spec_op {
- sll_op, movc_op, srl_op, sra_op,
- sllv_op, pmon_op, srlv_op, srav_op,
+  sll_op,
+  movc_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- jr_op, jalr_op, movz_op, movn_op,
- syscall_op, break_op, spim_op, sync_op,
- mfhi_op, mthi_op, mflo_op, mtlo_op,
- dsllv_op, spec2_unused_op, dsrlv_op, dsrav_op,
+  srl_op,
+  sra_op,
+  sllv_op,
+  pmon_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mult_op, multu_op, div_op, divu_op,
- dmult_op, dmultu_op, ddiv_op, ddivu_op,
- add_op, addu_op, sub_op, subu_op,
- and_op, or_op, xor_op, nor_op,
+  srlv_op,
+  srav_op,
+  jr_op,
+  jalr_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- spec3_unused_op, spec4_unused_op, slt_op, sltu_op,
- dadd_op, daddu_op, dsub_op, dsubu_op,
- tge_op, tgeu_op, tlt_op, tltu_op,
- teq_op, spec5_unused_op, tne_op, spec6_unused_op,
+  movz_op,
+  movn_op,
+  syscall_op,
+  break_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- dsll_op, spec7_unused_op, dsrl_op, dsra_op,
- dsll32_op, spec8_unused_op, dsrl32_op, dsra32_op
+  spim_op,
+  sync_op,
+  mfhi_op,
+  mthi_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mflo_op,
+  mtlo_op,
+  dsllv_op,
+  spec2_unused_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  dsrlv_op,
+  dsrav_op,
+  mult_op,
+  multu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  div_op,
+  divu_op,
+  dmult_op,
+  dmultu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  ddiv_op,
+  ddivu_op,
+  add_op,
+  addu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  sub_op,
+  subu_op,
+  and_op,
+  or_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  xor_op,
+  nor_op,
+  spec3_unused_op,
+  spec4_unused_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  slt_op,
+  sltu_op,
+  dadd_op,
+  daddu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  dsub_op,
+  dsubu_op,
+  tge_op,
+  tgeu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  tlt_op,
+  tltu_op,
+  teq_op,
+  spec5_unused_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  tne_op,
+  spec6_unused_op,
+  dsll_op,
+  spec7_unused_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  dsrl_op,
+  dsra_op,
+  dsll32_op,
+  spec8_unused_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  dsrl32_op,
+  dsra32_op
 };
 enum spec2_op {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- madd_op, maddu_op, mul_op, spec2_3_unused_op,
- msub_op, msubu_op,
- clz_op = 0x20, clo_op,
- dclz_op = 0x24, dclo_op,
+  madd_op,
+  maddu_op,
+  mul_op,
+  spec2_3_unused_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- sdbpp_op = 0x3f
+  msub_op,
+  msubu_op,
+  clz_op = 0x20,
+  clo_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  dclz_op = 0x24,
+  dclo_op,
+  sdbpp_op = 0x3f
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum spec3_op {
- ext_op, dextm_op, dextu_op, dext_op,
+  ext_op,
+  dextm_op,
+  dextu_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ins_op, dinsm_op, dinsu_op, dins_op,
- yield_op = 0x09, lx_op = 0x0a,
- lwle_op = 0x19, lwre_op = 0x1a,
- cachee_op = 0x1b, sbe_op = 0x1c,
+  dext_op,
+  ins_op,
+  dinsm_op,
+  dinsu_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- she_op = 0x1d, sce_op = 0x1e,
- swe_op = 0x1f, bshfl_op = 0x20,
- swle_op = 0x21, swre_op = 0x22,
- prefe_op = 0x23, dbshfl_op = 0x24,
+  dins_op,
+  yield_op = 0x09,
+  lx_op = 0x0a,
+  lwle_op = 0x19,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- lbue_op = 0x28, lhue_op = 0x29,
- lbe_op = 0x2c, lhe_op = 0x2d,
- lle_op = 0x2e, lwe_op = 0x2f,
- rdhwr_op = 0x3b
+  lwre_op = 0x1a,
+  cachee_op = 0x1b,
+  sbe_op = 0x1c,
+  she_op = 0x1d,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  sce_op = 0x1e,
+  swe_op = 0x1f,
+  bshfl_op = 0x20,
+  swle_op = 0x21,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  swre_op = 0x22,
+  prefe_op = 0x23,
+  dbshfl_op = 0x24,
+  lbue_op = 0x28,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  lhue_op = 0x29,
+  lbe_op = 0x2c,
+  lhe_op = 0x2d,
+  lle_op = 0x2e,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  lwe_op = 0x2f,
+  rdhwr_op = 0x3b
 };
 enum rt_op {
- bltz_op, bgez_op, bltzl_op, bgezl_op,
- spimi_op, unused_rt_op_0x05, unused_rt_op_0x06, unused_rt_op_0x07,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- tgei_op, tgeiu_op, tlti_op, tltiu_op,
- teqi_op, unused_0x0d_rt_op, tnei_op, unused_0x0f_rt_op,
- bltzal_op, bgezal_op, bltzall_op, bgezall_op,
- rt_op_0x14, rt_op_0x15, rt_op_0x16, rt_op_0x17,
+  bltz_op,
+  bgez_op,
+  bltzl_op,
+  bgezl_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- rt_op_0x18, rt_op_0x19, rt_op_0x1a, rt_op_0x1b,
- bposge32_op, rt_op_0x1d, rt_op_0x1e, rt_op_0x1f
+  spimi_op,
+  unused_rt_op_0x05,
+  unused_rt_op_0x06,
+  unused_rt_op_0x07,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  tgei_op,
+  tgeiu_op,
+  tlti_op,
+  tltiu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  teqi_op,
+  unused_0x0d_rt_op,
+  tnei_op,
+  unused_0x0f_rt_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  bltzal_op,
+  bgezal_op,
+  bltzall_op,
+  bgezall_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  rt_op_0x14,
+  rt_op_0x15,
+  rt_op_0x16,
+  rt_op_0x17,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  rt_op_0x18,
+  rt_op_0x19,
+  rt_op_0x1a,
+  rt_op_0x1b,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  bposge32_op,
+  rt_op_0x1d,
+  rt_op_0x1e,
+  rt_op_0x1f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum cop_op {
+  mfc_op = 0x00,
+  dmfc_op = 0x01,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mfc_op = 0x00, dmfc_op = 0x01,
- cfc_op = 0x02, mfhc_op = 0x03,
- mtc_op = 0x04, dmtc_op = 0x05,
- ctc_op = 0x06, mthc_op = 0x07,
+  cfc_op = 0x02,
+  mfhc_op = 0x03,
+  mtc_op = 0x04,
+  dmtc_op = 0x05,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- bc_op = 0x08, cop_op = 0x10,
- copm_op = 0x18
+  ctc_op = 0x06,
+  mthc_op = 0x07,
+  bc_op = 0x08,
+  cop_op = 0x10,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  copm_op = 0x18
 };
 enum bcop_op {
+  bcf_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- bcf_op, bct_op, bcfl_op, bctl_op
+  bct_op,
+  bcfl_op,
+  bctl_op
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum cop0_coi_func {
- tlbr_op = 0x01, tlbwi_op = 0x02,
+  tlbr_op = 0x01,
+  tlbwi_op = 0x02,
+  tlbwr_op = 0x06,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- tlbwr_op = 0x06, tlbp_op = 0x08,
- rfe_op = 0x10, eret_op = 0x18,
- wait_op = 0x20,
+  tlbp_op = 0x08,
+  rfe_op = 0x10,
+  eret_op = 0x18,
+  wait_op = 0x20,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum cop0_com_func {
- tlbr1_op = 0x01, tlbw_op = 0x02,
- tlbp1_op = 0x08, dctr_op = 0x09,
- dctw_op = 0x0a
+  tlbr1_op = 0x01,
+  tlbw_op = 0x02,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  tlbp1_op = 0x08,
+  dctr_op = 0x09,
+  dctw_op = 0x0a
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum cop1_fmt {
- s_fmt, d_fmt, e_fmt, q_fmt,
- w_fmt, l_fmt
+  s_fmt,
+  d_fmt,
+  e_fmt,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  q_fmt,
+  w_fmt,
+  l_fmt
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum cop1_sdw_func {
- fadd_op = 0x00, fsub_op = 0x01,
- fmul_op = 0x02, fdiv_op = 0x03,
+  fadd_op = 0x00,
+  fsub_op = 0x01,
+  fmul_op = 0x02,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- fsqrt_op = 0x04, fabs_op = 0x05,
- fmov_op = 0x06, fneg_op = 0x07,
- froundl_op = 0x08, ftruncl_op = 0x09,
- fceill_op = 0x0a, ffloorl_op = 0x0b,
+  fdiv_op = 0x03,
+  fsqrt_op = 0x04,
+  fabs_op = 0x05,
+  fmov_op = 0x06,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- fround_op = 0x0c, ftrunc_op = 0x0d,
- fceil_op = 0x0e, ffloor_op = 0x0f,
- fmovc_op = 0x11, fmovz_op = 0x12,
- fmovn_op = 0x13, frecip_op = 0x15,
+  fneg_op = 0x07,
+  froundl_op = 0x08,
+  ftruncl_op = 0x09,
+  fceill_op = 0x0a,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- frsqrt_op = 0x16, fcvts_op = 0x20,
- fcvtd_op = 0x21, fcvte_op = 0x22,
- fcvtw_op = 0x24, fcvtl_op = 0x25,
- fcmp_op = 0x30
+  ffloorl_op = 0x0b,
+  fround_op = 0x0c,
+  ftrunc_op = 0x0d,
+  fceil_op = 0x0e,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  ffloor_op = 0x0f,
+  fmovc_op = 0x11,
+  fmovz_op = 0x12,
+  fmovn_op = 0x13,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  frecip_op = 0x15,
+  frsqrt_op = 0x16,
+  fcvts_op = 0x20,
+  fcvtd_op = 0x21,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  fcvte_op = 0x22,
+  fcvtw_op = 0x24,
+  fcvtl_op = 0x25,
+  fcmp_op = 0x30
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum cop1x_func {
- lwxc1_op = 0x00, ldxc1_op = 0x01,
- swxc1_op = 0x08, sdxc1_op = 0x09,
+  lwxc1_op = 0x00,
+  ldxc1_op = 0x01,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- pfetch_op = 0x0f, madd_s_op = 0x20,
- madd_d_op = 0x21, madd_e_op = 0x22,
- msub_s_op = 0x28, msub_d_op = 0x29,
- msub_e_op = 0x2a, nmadd_s_op = 0x30,
+  swxc1_op = 0x08,
+  sdxc1_op = 0x09,
+  pfetch_op = 0x0f,
+  madd_s_op = 0x20,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- nmadd_d_op = 0x31, nmadd_e_op = 0x32,
- nmsub_s_op = 0x38, nmsub_d_op = 0x39,
- nmsub_e_op = 0x3a
+  madd_d_op = 0x21,
+  madd_e_op = 0x22,
+  msub_s_op = 0x28,
+  msub_d_op = 0x29,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  msub_e_op = 0x2a,
+  nmadd_s_op = 0x30,
+  nmadd_d_op = 0x31,
+  nmadd_e_op = 0x32,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  nmsub_s_op = 0x38,
+  nmsub_d_op = 0x39,
+  nmsub_e_op = 0x3a
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum mad_func {
- madd_fp_op = 0x08, msub_fp_op = 0x0a,
- nmadd_fp_op = 0x0c, nmsub_fp_op = 0x0e
+  madd_fp_op = 0x08,
+  msub_fp_op = 0x0a,
+  nmadd_fp_op = 0x0c,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  nmsub_fp_op = 0x0e
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum lx_func {
- lwx_op = 0x00,
- lhx_op = 0x04,
- lbux_op = 0x06,
+  lwx_op = 0x00,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ldx_op = 0x08,
- lwux_op = 0x10,
- lhux_op = 0x14,
- lbx_op = 0x16,
+  lhx_op = 0x04,
+  lbux_op = 0x06,
+  ldx_op = 0x08,
+  lwux_op = 0x10,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  lhux_op = 0x14,
+  lbx_op = 0x16,
 };
 enum bshfl_func {
- wsbh_op = 0x2,
- dshd_op = 0x5,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- seb_op = 0x10,
- seh_op = 0x18,
+  wsbh_op = 0x2,
+  dshd_op = 0x5,
+  seb_op = 0x10,
+  seh_op = 0x18,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum mm_major_op {
+  mm_pool32a_op,
+  mm_pool16a_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_pool32a_op, mm_pool16a_op, mm_lbu16_op, mm_move16_op,
- mm_addi32_op, mm_lbu32_op, mm_sb32_op, mm_lb32_op,
- mm_pool32b_op, mm_pool16b_op, mm_lhu16_op, mm_andi16_op,
- mm_addiu32_op, mm_lhu32_op, mm_sh32_op, mm_lh32_op,
+  mm_lbu16_op,
+  mm_move16_op,
+  mm_addi32_op,
+  mm_lbu32_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_pool32i_op, mm_pool16c_op, mm_lwsp16_op, mm_pool16d_op,
- mm_ori32_op, mm_pool32f_op, mm_reserved1_op, mm_reserved2_op,
- mm_pool32c_op, mm_lwgp16_op, mm_lw16_op, mm_pool16e_op,
- mm_xori32_op, mm_jals32_op, mm_addiupc_op, mm_reserved3_op,
+  mm_sb32_op,
+  mm_lb32_op,
+  mm_pool32b_op,
+  mm_pool16b_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_reserved4_op, mm_pool16f_op, mm_sb16_op, mm_beqz16_op,
- mm_slti32_op, mm_beq32_op, mm_swc132_op, mm_lwc132_op,
- mm_reserved5_op, mm_reserved6_op, mm_sh16_op, mm_bnez16_op,
- mm_sltiu32_op, mm_bne32_op, mm_sdc132_op, mm_ldc132_op,
+  mm_lhu16_op,
+  mm_andi16_op,
+  mm_addiu32_op,
+  mm_lhu32_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_reserved7_op, mm_reserved8_op, mm_swsp16_op, mm_b16_op,
- mm_andi32_op, mm_j32_op, mm_sd32_op, mm_ld32_op,
- mm_reserved11_op, mm_reserved12_op, mm_sw16_op, mm_li16_op,
- mm_jalx32_op, mm_jal32_op, mm_sw32_op, mm_lw32_op,
+  mm_sh32_op,
+  mm_lh32_op,
+  mm_pool32i_op,
+  mm_pool16c_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_lwsp16_op,
+  mm_pool16d_op,
+  mm_ori32_op,
+  mm_pool32f_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_reserved1_op,
+  mm_reserved2_op,
+  mm_pool32c_op,
+  mm_lwgp16_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_lw16_op,
+  mm_pool16e_op,
+  mm_xori32_op,
+  mm_jals32_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_addiupc_op,
+  mm_reserved3_op,
+  mm_reserved4_op,
+  mm_pool16f_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_sb16_op,
+  mm_beqz16_op,
+  mm_slti32_op,
+  mm_beq32_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_swc132_op,
+  mm_lwc132_op,
+  mm_reserved5_op,
+  mm_reserved6_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_sh16_op,
+  mm_bnez16_op,
+  mm_sltiu32_op,
+  mm_bne32_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_sdc132_op,
+  mm_ldc132_op,
+  mm_reserved7_op,
+  mm_reserved8_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_swsp16_op,
+  mm_b16_op,
+  mm_andi32_op,
+  mm_j32_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_sd32_op,
+  mm_ld32_op,
+  mm_reserved11_op,
+  mm_reserved12_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_sw16_op,
+  mm_li16_op,
+  mm_jalx32_op,
+  mm_jal32_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_sw32_op,
+  mm_lw32_op,
 };
 enum mm_32i_minor_op {
- mm_bltz_op, mm_bltzal_op, mm_bgez_op, mm_bgezal_op,
- mm_blez_op, mm_bnezc_op, mm_bgtz_op, mm_beqzc_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_tlti_op, mm_tgei_op, mm_tltiu_op, mm_tgeiu_op,
- mm_tnei_op, mm_lui_op, mm_teqi_op, mm_reserved13_op,
- mm_synci_op, mm_bltzals_op, mm_reserved14_op, mm_bgezals_op,
- mm_bc2f_op, mm_bc2t_op, mm_reserved15_op, mm_reserved16_op,
+  mm_bltz_op,
+  mm_bltzal_op,
+  mm_bgez_op,
+  mm_bgezal_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_reserved17_op, mm_reserved18_op, mm_bposge64_op, mm_bposge32_op,
- mm_bc1f_op, mm_bc1t_op, mm_reserved19_op, mm_reserved20_op,
- mm_bc1any2f_op, mm_bc1any2t_op, mm_bc1any4f_op, mm_bc1any4t_op,
+  mm_blez_op,
+  mm_bnezc_op,
+  mm_bgtz_op,
+  mm_beqzc_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_tlti_op,
+  mm_tgei_op,
+  mm_tltiu_op,
+  mm_tgeiu_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_tnei_op,
+  mm_lui_op,
+  mm_teqi_op,
+  mm_reserved13_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_synci_op,
+  mm_bltzals_op,
+  mm_reserved14_op,
+  mm_bgezals_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_bc2f_op,
+  mm_bc2t_op,
+  mm_reserved15_op,
+  mm_reserved16_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_reserved17_op,
+  mm_reserved18_op,
+  mm_bposge64_op,
+  mm_bposge32_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_bc1f_op,
+  mm_bc1t_op,
+  mm_reserved19_op,
+  mm_reserved20_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_bc1any2f_op,
+  mm_bc1any2t_op,
+  mm_bc1any4f_op,
+  mm_bc1any4t_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum mm_32a_minor_op {
- mm_sll32_op = 0x000,
- mm_ins_op = 0x00c,
- mm_sllv32_op = 0x010,
+  mm_sll32_op = 0x000,
+  mm_ins_op = 0x00c,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_ext_op = 0x02c,
- mm_pool32axf_op = 0x03c,
- mm_srl32_op = 0x040,
- mm_sra_op = 0x080,
+  mm_sllv32_op = 0x010,
+  mm_ext_op = 0x02c,
+  mm_pool32axf_op = 0x03c,
+  mm_srl32_op = 0x040,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_srlv32_op = 0x090,
- mm_rotr_op = 0x0c0,
- mm_lwxs_op = 0x118,
- mm_addu32_op = 0x150,
+  mm_sra_op = 0x080,
+  mm_srlv32_op = 0x090,
+  mm_rotr_op = 0x0c0,
+  mm_lwxs_op = 0x118,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_subu32_op = 0x1d0,
- mm_wsbh_op = 0x1ec,
- mm_mul_op = 0x210,
- mm_and_op = 0x250,
+  mm_addu32_op = 0x150,
+  mm_subu32_op = 0x1d0,
+  mm_wsbh_op = 0x1ec,
+  mm_mul_op = 0x210,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_or32_op = 0x290,
- mm_xor32_op = 0x310,
- mm_slt_op = 0x350,
- mm_sltu_op = 0x390,
+  mm_and_op = 0x250,
+  mm_or32_op = 0x290,
+  mm_xor32_op = 0x310,
+  mm_slt_op = 0x350,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_sltu_op = 0x390,
 };
 enum mm_32b_func {
- mm_lwc2_func = 0x0,
- mm_lwp_func = 0x1,
+  mm_lwc2_func = 0x0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_ldc2_func = 0x2,
- mm_ldp_func = 0x4,
- mm_lwm32_func = 0x5,
- mm_cache_func = 0x6,
+  mm_lwp_func = 0x1,
+  mm_ldc2_func = 0x2,
+  mm_ldp_func = 0x4,
+  mm_lwm32_func = 0x5,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_ldm_func = 0x7,
- mm_swc2_func = 0x8,
- mm_swp_func = 0x9,
- mm_sdc2_func = 0xa,
+  mm_cache_func = 0x6,
+  mm_ldm_func = 0x7,
+  mm_swc2_func = 0x8,
+  mm_swp_func = 0x9,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_sdp_func = 0xc,
- mm_swm32_func = 0xd,
- mm_sdm_func = 0xf,
+  mm_sdc2_func = 0xa,
+  mm_sdp_func = 0xc,
+  mm_swm32_func = 0xd,
+  mm_sdm_func = 0xf,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum mm_32c_func {
- mm_pref_func = 0x2,
- mm_ll_func = 0x3,
- mm_swr_func = 0x9,
+  mm_pref_func = 0x2,
+  mm_ll_func = 0x3,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_sc_func = 0xb,
- mm_lwu_func = 0xe,
+  mm_swr_func = 0x9,
+  mm_sc_func = 0xb,
+  mm_lwu_func = 0xe,
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum mm_32axf_minor_op {
+  mm_mfc0_op = 0x003,
+  mm_mtc0_op = 0x00b,
+  mm_tlbp_op = 0x00d,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_mfc0_op = 0x003,
- mm_mtc0_op = 0x00b,
- mm_tlbp_op = 0x00d,
- mm_mfhi32_op = 0x035,
+  mm_mfhi32_op = 0x035,
+  mm_jalr_op = 0x03c,
+  mm_tlbr_op = 0x04d,
+  mm_mflo32_op = 0x075,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_jalr_op = 0x03c,
- mm_tlbr_op = 0x04d,
- mm_mflo32_op = 0x075,
- mm_jalrhb_op = 0x07c,
+  mm_jalrhb_op = 0x07c,
+  mm_tlbwi_op = 0x08d,
+  mm_tlbwr_op = 0x0cd,
+  mm_jalrs_op = 0x13c,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_tlbwi_op = 0x08d,
- mm_tlbwr_op = 0x0cd,
- mm_jalrs_op = 0x13c,
- mm_jalrshb_op = 0x17c,
+  mm_jalrshb_op = 0x17c,
+  mm_sync_op = 0x1ad,
+  mm_syscall_op = 0x22d,
+  mm_wait_op = 0x24d,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_sync_op = 0x1ad,
- mm_syscall_op = 0x22d,
- mm_wait_op = 0x24d,
- mm_eret_op = 0x3cd,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_divu_op = 0x5dc,
+  mm_eret_op = 0x3cd,
+  mm_divu_op = 0x5dc,
 };
 enum mm_32f_minor_op {
- mm_32f_00_op = 0x00,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_32f_01_op = 0x01,
- mm_32f_02_op = 0x02,
- mm_32f_10_op = 0x08,
- mm_32f_11_op = 0x09,
+  mm_32f_00_op = 0x00,
+  mm_32f_01_op = 0x01,
+  mm_32f_02_op = 0x02,
+  mm_32f_10_op = 0x08,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_32f_12_op = 0x0a,
- mm_32f_20_op = 0x10,
- mm_32f_30_op = 0x18,
- mm_32f_40_op = 0x20,
+  mm_32f_11_op = 0x09,
+  mm_32f_12_op = 0x0a,
+  mm_32f_20_op = 0x10,
+  mm_32f_30_op = 0x18,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_32f_41_op = 0x21,
- mm_32f_42_op = 0x22,
- mm_32f_50_op = 0x28,
- mm_32f_51_op = 0x29,
+  mm_32f_40_op = 0x20,
+  mm_32f_41_op = 0x21,
+  mm_32f_42_op = 0x22,
+  mm_32f_50_op = 0x28,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_32f_52_op = 0x2a,
- mm_32f_60_op = 0x30,
- mm_32f_70_op = 0x38,
- mm_32f_73_op = 0x3b,
+  mm_32f_51_op = 0x29,
+  mm_32f_52_op = 0x2a,
+  mm_32f_60_op = 0x30,
+  mm_32f_70_op = 0x38,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_32f_74_op = 0x3c,
+  mm_32f_73_op = 0x3b,
+  mm_32f_74_op = 0x3c,
 };
 enum mm_32f_10_minor_op {
- mm_lwxc1_op = 0x1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_swxc1_op,
- mm_ldxc1_op,
- mm_sdxc1_op,
- mm_luxc1_op,
+  mm_lwxc1_op = 0x1,
+  mm_swxc1_op,
+  mm_ldxc1_op,
+  mm_sdxc1_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_suxc1_op,
+  mm_luxc1_op,
+  mm_suxc1_op,
 };
 enum mm_32f_func {
- mm_lwxc1_func = 0x048,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_swxc1_func = 0x088,
- mm_ldxc1_func = 0x0c8,
- mm_sdxc1_func = 0x108,
+  mm_lwxc1_func = 0x048,
+  mm_swxc1_func = 0x088,
+  mm_ldxc1_func = 0x0c8,
+  mm_sdxc1_func = 0x108,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum mm_32f_40_minor_op {
- mm_fmovf_op,
- mm_fmovt_op,
+  mm_fmovf_op,
+  mm_fmovt_op,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum mm_32f_60_minor_op {
- mm_fadd_op,
- mm_fsub_op,
- mm_fmul_op,
+  mm_fadd_op,
+  mm_fsub_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_fdiv_op,
+  mm_fmul_op,
+  mm_fdiv_op,
 };
 enum mm_32f_70_minor_op {
- mm_fmovn_op,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_fmovz_op,
+  mm_fmovn_op,
+  mm_fmovz_op,
 };
 enum mm_32f_73_minor_op {
- mm_fmov0_op = 0x01,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_fcvtl_op = 0x04,
- mm_movf0_op = 0x05,
- mm_frsqrt_op = 0x08,
- mm_ffloorl_op = 0x0c,
+  mm_fmov0_op = 0x01,
+  mm_fcvtl_op = 0x04,
+  mm_movf0_op = 0x05,
+  mm_frsqrt_op = 0x08,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_fabs0_op = 0x0d,
- mm_fcvtw_op = 0x24,
- mm_movt0_op = 0x25,
- mm_fsqrt_op = 0x28,
+  mm_ffloorl_op = 0x0c,
+  mm_fabs0_op = 0x0d,
+  mm_fcvtw_op = 0x24,
+  mm_movt0_op = 0x25,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_ffloorw_op = 0x2c,
- mm_fneg0_op = 0x2d,
- mm_cfc1_op = 0x40,
- mm_frecip_op = 0x48,
+  mm_fsqrt_op = 0x28,
+  mm_ffloorw_op = 0x2c,
+  mm_fneg0_op = 0x2d,
+  mm_cfc1_op = 0x40,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_fceill_op = 0x4c,
- mm_fcvtd0_op = 0x4d,
- mm_ctc1_op = 0x60,
- mm_fceilw_op = 0x6c,
+  mm_frecip_op = 0x48,
+  mm_fceill_op = 0x4c,
+  mm_fcvtd0_op = 0x4d,
+  mm_ctc1_op = 0x60,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_fcvts0_op = 0x6d,
- mm_mfc1_op = 0x80,
- mm_fmov1_op = 0x81,
- mm_movf1_op = 0x85,
+  mm_fceilw_op = 0x6c,
+  mm_fcvts0_op = 0x6d,
+  mm_mfc1_op = 0x80,
+  mm_fmov1_op = 0x81,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_ftruncl_op = 0x8c,
- mm_fabs1_op = 0x8d,
- mm_mtc1_op = 0xa0,
- mm_movt1_op = 0xa5,
+  mm_movf1_op = 0x85,
+  mm_ftruncl_op = 0x8c,
+  mm_fabs1_op = 0x8d,
+  mm_mtc1_op = 0xa0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_ftruncw_op = 0xac,
- mm_fneg1_op = 0xad,
- mm_mfhc1_op = 0xc0,
- mm_froundl_op = 0xcc,
+  mm_movt1_op = 0xa5,
+  mm_ftruncw_op = 0xac,
+  mm_fneg1_op = 0xad,
+  mm_mfhc1_op = 0xc0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_fcvtd1_op = 0xcd,
- mm_mthc1_op = 0xe0,
- mm_froundw_op = 0xec,
- mm_fcvts1_op = 0xed,
+  mm_froundl_op = 0xcc,
+  mm_fcvtd1_op = 0xcd,
+  mm_mthc1_op = 0xe0,
+  mm_froundw_op = 0xec,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  mm_fcvts1_op = 0xed,
 };
 enum mm_16c_minor_op {
- mm_lwm16_op = 0x04,
- mm_swm16_op = 0x05,
+  mm_lwm16_op = 0x04,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_jr16_op = 0x0c,
- mm_jrc_op = 0x0d,
- mm_jalr16_op = 0x0e,
- mm_jalrs16_op = 0x0f,
+  mm_swm16_op = 0x05,
+  mm_jr16_op = 0x0c,
+  mm_jrc_op = 0x0d,
+  mm_jalr16_op = 0x0e,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_jraddiusp_op = 0x18,
+  mm_jalrs16_op = 0x0f,
+  mm_jraddiusp_op = 0x18,
 };
 enum mm_16d_minor_op {
- mm_addius5_func,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mm_addiusp_func,
+  mm_addius5_func,
+  mm_addiusp_func,
 };
 enum MIPS16e_ops {
- MIPS16e_jal_op = 003,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MIPS16e_ld_op = 007,
- MIPS16e_i8_op = 014,
- MIPS16e_sd_op = 017,
- MIPS16e_lb_op = 020,
+  MIPS16e_jal_op = 003,
+  MIPS16e_ld_op = 007,
+  MIPS16e_i8_op = 014,
+  MIPS16e_sd_op = 017,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MIPS16e_lh_op = 021,
- MIPS16e_lwsp_op = 022,
- MIPS16e_lw_op = 023,
- MIPS16e_lbu_op = 024,
+  MIPS16e_lb_op = 020,
+  MIPS16e_lh_op = 021,
+  MIPS16e_lwsp_op = 022,
+  MIPS16e_lw_op = 023,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MIPS16e_lhu_op = 025,
- MIPS16e_lwpc_op = 026,
- MIPS16e_lwu_op = 027,
- MIPS16e_sb_op = 030,
+  MIPS16e_lbu_op = 024,
+  MIPS16e_lhu_op = 025,
+  MIPS16e_lwpc_op = 026,
+  MIPS16e_lwu_op = 027,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MIPS16e_sh_op = 031,
- MIPS16e_swsp_op = 032,
- MIPS16e_sw_op = 033,
- MIPS16e_rr_op = 035,
+  MIPS16e_sb_op = 030,
+  MIPS16e_sh_op = 031,
+  MIPS16e_swsp_op = 032,
+  MIPS16e_sw_op = 033,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MIPS16e_extend_op = 036,
- MIPS16e_i64_op = 037,
+  MIPS16e_rr_op = 035,
+  MIPS16e_extend_op = 036,
+  MIPS16e_i64_op = 037,
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum MIPS16e_i64_func {
+  MIPS16e_ldsp_func,
+  MIPS16e_sdsp_func,
+  MIPS16e_sdrasp_func,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MIPS16e_ldsp_func,
- MIPS16e_sdsp_func,
- MIPS16e_sdrasp_func,
- MIPS16e_dadjsp_func,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MIPS16e_ldpc_func,
+  MIPS16e_dadjsp_func,
+  MIPS16e_ldpc_func,
 };
 enum MIPS16e_rr_func {
- MIPS16e_jr_func,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  MIPS16e_jr_func,
 };
 enum MIPS6e_i8_func {
- MIPS16e_swrasp_func = 02,
-};
+  MIPS16e_swrasp_func = 02,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 #define MM_NOP16 0x0c00
 struct j_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int target : 26,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int target : 26,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ;))
+ ))
 };
 struct i_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(signed int simmediate : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rs : 5,
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(signed int simmediate : 16,
- ;))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ))))
 };
 struct u_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rs : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int uimmediate : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(unsigned int uimmediate : 16,
- ;))))
+ ))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct c_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rs : 5,
- __BITFIELD_FIELD(unsigned int c_op : 3,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(unsigned int c_op : 3, __BITFIELD_FIELD(unsigned int cache : 2, __BITFIELD_FIELD(unsigned int simmediate : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int cache : 2,
- __BITFIELD_FIELD(unsigned int simmediate : 16,
- ;)))))
+ )))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct r_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rs : 5,
- __BITFIELD_FIELD(unsigned int rt : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int rd : 5, __BITFIELD_FIELD(unsigned int re : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rd : 5,
- __BITFIELD_FIELD(unsigned int re : 5,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ))))))
 };
 struct p_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rs : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int rd : 5, __BITFIELD_FIELD(unsigned int re : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(unsigned int rd : 5,
- __BITFIELD_FIELD(unsigned int re : 5,
- __BITFIELD_FIELD(unsigned int func : 6,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ;))))))
+ ))))))
 };
 struct f_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int : 1, __BITFIELD_FIELD(unsigned int fmt : 4, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int rd : 5, __BITFIELD_FIELD(unsigned int re : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int : 1,
- __BITFIELD_FIELD(unsigned int fmt : 4,
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(unsigned int rd : 5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int re : 5,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;)))))))
+ )))))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ma_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int fr : 5,
- __BITFIELD_FIELD(unsigned int ft : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int fr : 5, __BITFIELD_FIELD(unsigned int ft : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int func : 4, __BITFIELD_FIELD(unsigned int fmt : 2,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int fs : 5,
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int func : 4,
- __BITFIELD_FIELD(unsigned int fmt : 2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ;)))))))
+ )))))))
 };
 struct b_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int code : 20, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int code : 20,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;)))
+ )))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ps_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rs : 5,
- __BITFIELD_FIELD(unsigned int ft : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(unsigned int ft : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int fs : 5,
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ))))))
 };
 struct v_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int sel : 4,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int sel : 4, __BITFIELD_FIELD(unsigned int fmt : 1, __BITFIELD_FIELD(unsigned int vt : 5, __BITFIELD_FIELD(unsigned int vs : 5, __BITFIELD_FIELD(unsigned int vd : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int fmt : 1,
- __BITFIELD_FIELD(unsigned int vt : 5,
- __BITFIELD_FIELD(unsigned int vs : 5,
- __BITFIELD_FIELD(unsigned int vd : 5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int func : 6,
- ;)))))))
+ )))))))
 };
 struct spec3_format {
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(signed int simmediate : 9, __BITFIELD_FIELD(unsigned int func : 7,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode:6,
- __BITFIELD_FIELD(unsigned int rs:5,
- __BITFIELD_FIELD(unsigned int rt:5,
- __BITFIELD_FIELD(signed int simmediate:9,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int func:7,
- ;)))))
+ )))))
 };
 struct fb_format {
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int bc : 5, __BITFIELD_FIELD(unsigned int cc : 3, __BITFIELD_FIELD(unsigned int flag : 2, __BITFIELD_FIELD(signed int simmediate : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int bc : 5,
- __BITFIELD_FIELD(unsigned int cc : 3,
- __BITFIELD_FIELD(unsigned int flag : 2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(signed int simmediate : 16,
- ;)))))
+ )))))
 };
 struct fp0_format {
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int fmt : 5, __BITFIELD_FIELD(unsigned int ft : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int fmt : 5,
- __BITFIELD_FIELD(unsigned int ft : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
+ ))))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm_fp0_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int ft : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int ft : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int fmt : 3, __BITFIELD_FIELD(unsigned int op : 2, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int fmt : 3,
- __BITFIELD_FIELD(unsigned int op : 2,
- __BITFIELD_FIELD(unsigned int func : 6,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ;)))))))
+ )))))))
 };
 struct fp1_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int op : 5, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int op : 5,
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
- __BITFIELD_FIELD(unsigned int fd : 5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
+ ))))))
 };
 struct mm_fp1_format {
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fmt : 2, __BITFIELD_FIELD(unsigned int op : 8, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
- __BITFIELD_FIELD(unsigned int fmt : 2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int op : 8,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
+ ))))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm_fp2_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int cc : 3, __BITFIELD_FIELD(unsigned int zero : 2, __BITFIELD_FIELD(unsigned int fmt : 2, __BITFIELD_FIELD(unsigned int op : 3, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int cc : 3,
- __BITFIELD_FIELD(unsigned int zero : 2,
- __BITFIELD_FIELD(unsigned int fmt : 2,
- __BITFIELD_FIELD(unsigned int op : 3,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))))
+ ))))))))
 };
 struct mm_fp3_format {
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fmt : 3, __BITFIELD_FIELD(unsigned int op : 7, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
- __BITFIELD_FIELD(unsigned int fmt : 3,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int op : 7,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
+ ))))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm_fp4_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int cc : 3, __BITFIELD_FIELD(unsigned int fmt : 3, __BITFIELD_FIELD(unsigned int cond : 4, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int cc : 3,
- __BITFIELD_FIELD(unsigned int fmt : 3,
- __BITFIELD_FIELD(unsigned int cond : 4,
- __BITFIELD_FIELD(unsigned int func : 6,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ;)))))))
+ )))))))
 };
 struct mm_fp5_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int index : 5, __BITFIELD_FIELD(unsigned int base : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int op : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int index : 5,
- __BITFIELD_FIELD(unsigned int base : 5,
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int op : 5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
+ ))))))
 };
 struct fp6_format {
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int fr : 5, __BITFIELD_FIELD(unsigned int ft : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int fr : 5,
- __BITFIELD_FIELD(unsigned int ft : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
+ ))))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm_fp6_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int ft : 5,
- __BITFIELD_FIELD(unsigned int fs : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int ft : 5, __BITFIELD_FIELD(unsigned int fs : 5, __BITFIELD_FIELD(unsigned int fd : 5, __BITFIELD_FIELD(unsigned int fr : 5, __BITFIELD_FIELD(unsigned int func : 6,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int fd : 5,
- __BITFIELD_FIELD(unsigned int fr : 5,
- __BITFIELD_FIELD(unsigned int func : 6,
- ;))))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ))))))
 };
 struct mm_i_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rt : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(unsigned int rs : 5, __BITFIELD_FIELD(signed int simmediate : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rs : 5,
- __BITFIELD_FIELD(signed int simmediate : 16,
- ;))))
+ ))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm_m_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rd : 5,
- __BITFIELD_FIELD(unsigned int base : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rd : 5, __BITFIELD_FIELD(unsigned int base : 5, __BITFIELD_FIELD(unsigned int func : 4, __BITFIELD_FIELD(signed int simmediate : 12,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int func : 4,
- __BITFIELD_FIELD(signed int simmediate : 12,
- ;)))))
+ )))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm_x_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int index : 5,
- __BITFIELD_FIELD(unsigned int base : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int index : 5, __BITFIELD_FIELD(unsigned int base : 5, __BITFIELD_FIELD(unsigned int rd : 5, __BITFIELD_FIELD(unsigned int func : 11,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rd : 5,
- __BITFIELD_FIELD(unsigned int func : 11,
- ;)))))
+ )))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm_b0_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(signed int simmediate : 10,
- __BITFIELD_FIELD(unsigned int : 16,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(signed int simmediate : 10, __BITFIELD_FIELD(unsigned int : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ;)))
+ )))
 };
 struct mm_b1_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rs : 3, __BITFIELD_FIELD(signed int simmediate : 7, __BITFIELD_FIELD(unsigned int : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rs : 3,
- __BITFIELD_FIELD(signed int simmediate : 7,
- __BITFIELD_FIELD(unsigned int : 16,
- ;))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ))))
 };
 struct mm16_m_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int func : 4,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int func : 4, __BITFIELD_FIELD(unsigned int rlist : 2, __BITFIELD_FIELD(unsigned int imm : 4, __BITFIELD_FIELD(unsigned int : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rlist : 2,
- __BITFIELD_FIELD(unsigned int imm : 4,
- __BITFIELD_FIELD(unsigned int : 16,
- ;)))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ )))))
 };
 struct mm16_rb_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rt : 3,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rt : 3, __BITFIELD_FIELD(unsigned int base : 3, __BITFIELD_FIELD(signed int simmediate : 4, __BITFIELD_FIELD(unsigned int : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int base : 3,
- __BITFIELD_FIELD(signed int simmediate : 4,
- __BITFIELD_FIELD(unsigned int : 16,
- ;)))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ )))))
 };
 struct mm16_r3_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rt : 3,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rt : 3, __BITFIELD_FIELD(signed int simmediate : 7, __BITFIELD_FIELD(unsigned int : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(signed int simmediate : 7,
- __BITFIELD_FIELD(unsigned int : 16,
- ;))))
+ ))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mm16_r5_format {
- __BITFIELD_FIELD(unsigned int opcode : 6,
- __BITFIELD_FIELD(unsigned int rt : 5,
- __BITFIELD_FIELD(signed int simmediate : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 6, __BITFIELD_FIELD(unsigned int rt : 5, __BITFIELD_FIELD(signed int simmediate : 5, __BITFIELD_FIELD(unsigned int : 16,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int : 16,
- ;))))
+ ))))
 };
 struct m16e_rr {
+  __BITFIELD_FIELD(unsigned int opcode : 5, __BITFIELD_FIELD(unsigned int rx : 3, __BITFIELD_FIELD(unsigned int nd : 1, __BITFIELD_FIELD(unsigned int l : 1, __BITFIELD_FIELD(unsigned int ra : 1, __BITFIELD_FIELD(unsigned int func : 5,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode : 5,
- __BITFIELD_FIELD(unsigned int rx : 3,
- __BITFIELD_FIELD(unsigned int nd : 1,
- __BITFIELD_FIELD(unsigned int l : 1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int ra : 1,
- __BITFIELD_FIELD(unsigned int func : 5,
- ;))))))
+ ))))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct m16e_jal {
- __BITFIELD_FIELD(unsigned int opcode : 5,
- __BITFIELD_FIELD(unsigned int x : 1,
- __BITFIELD_FIELD(unsigned int imm20_16 : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 5, __BITFIELD_FIELD(unsigned int x : 1, __BITFIELD_FIELD(unsigned int imm20_16 : 5, __BITFIELD_FIELD(signed int imm25_21 : 5,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(signed int imm25_21 : 5,
- ;))))
+ ))))
 };
 struct m16e_i64 {
+  __BITFIELD_FIELD(unsigned int opcode : 5, __BITFIELD_FIELD(unsigned int func : 3, __BITFIELD_FIELD(unsigned int imm : 8,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int opcode : 5,
- __BITFIELD_FIELD(unsigned int func : 3,
- __BITFIELD_FIELD(unsigned int imm : 8,
- ;)))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ )))
 };
 struct m16e_ri64 {
- __BITFIELD_FIELD(unsigned int opcode : 5,
- __BITFIELD_FIELD(unsigned int func : 3,
+  __BITFIELD_FIELD(unsigned int opcode : 5, __BITFIELD_FIELD(unsigned int func : 3, __BITFIELD_FIELD(unsigned int ry : 3, __BITFIELD_FIELD(unsigned int imm : 5,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int ry : 3,
- __BITFIELD_FIELD(unsigned int imm : 5,
- ;))))
+ ))))
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct m16e_ri {
- __BITFIELD_FIELD(unsigned int opcode : 5,
- __BITFIELD_FIELD(unsigned int rx : 3,
- __BITFIELD_FIELD(unsigned int imm : 8,
+  __BITFIELD_FIELD(unsigned int opcode : 5, __BITFIELD_FIELD(unsigned int rx : 3, __BITFIELD_FIELD(unsigned int imm : 8,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ;)))
+ )))
 };
 struct m16e_rri {
- __BITFIELD_FIELD(unsigned int opcode : 5,
+  __BITFIELD_FIELD(unsigned int opcode : 5, __BITFIELD_FIELD(unsigned int rx : 3, __BITFIELD_FIELD(unsigned int ry : 3, __BITFIELD_FIELD(unsigned int imm : 5,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int rx : 3,
- __BITFIELD_FIELD(unsigned int ry : 3,
- __BITFIELD_FIELD(unsigned int imm : 5,
- ;))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ))))
 };
 struct m16e_i8 {
- __BITFIELD_FIELD(unsigned int opcode : 5,
- __BITFIELD_FIELD(unsigned int func : 3,
+  __BITFIELD_FIELD(unsigned int opcode : 5, __BITFIELD_FIELD(unsigned int func : 3, __BITFIELD_FIELD(unsigned int imm : 8,;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __BITFIELD_FIELD(unsigned int imm : 8,
- ;)))
+ )))
 };
 union mips_instruction {
+  unsigned int word;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int word;
- unsigned short halfword[2];
- unsigned char byte[4];
- struct j_format j_format;
+  unsigned short halfword[2];
+  unsigned char byte[4];
+  struct j_format j_format;
+  struct i_format i_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct i_format i_format;
- struct u_format u_format;
- struct c_format c_format;
- struct r_format r_format;
+  struct u_format u_format;
+  struct c_format c_format;
+  struct r_format r_format;
+  struct p_format p_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct p_format p_format;
- struct f_format f_format;
- struct ma_format ma_format;
- struct b_format b_format;
+  struct f_format f_format;
+  struct ma_format ma_format;
+  struct b_format b_format;
+  struct ps_format ps_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ps_format ps_format;
- struct v_format v_format;
- struct spec3_format spec3_format;
- struct fb_format fb_format;
+  struct v_format v_format;
+  struct spec3_format spec3_format;
+  struct fb_format fb_format;
+  struct fp0_format fp0_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct fp0_format fp0_format;
- struct mm_fp0_format mm_fp0_format;
- struct fp1_format fp1_format;
- struct mm_fp1_format mm_fp1_format;
+  struct mm_fp0_format mm_fp0_format;
+  struct fp1_format fp1_format;
+  struct mm_fp1_format mm_fp1_format;
+  struct mm_fp2_format mm_fp2_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct mm_fp2_format mm_fp2_format;
- struct mm_fp3_format mm_fp3_format;
- struct mm_fp4_format mm_fp4_format;
- struct mm_fp5_format mm_fp5_format;
+  struct mm_fp3_format mm_fp3_format;
+  struct mm_fp4_format mm_fp4_format;
+  struct mm_fp5_format mm_fp5_format;
+  struct fp6_format fp6_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct fp6_format fp6_format;
- struct mm_fp6_format mm_fp6_format;
- struct mm_i_format mm_i_format;
- struct mm_m_format mm_m_format;
+  struct mm_fp6_format mm_fp6_format;
+  struct mm_i_format mm_i_format;
+  struct mm_m_format mm_m_format;
+  struct mm_x_format mm_x_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct mm_x_format mm_x_format;
- struct mm_b0_format mm_b0_format;
- struct mm_b1_format mm_b1_format;
- struct mm16_m_format mm16_m_format ;
+  struct mm_b0_format mm_b0_format;
+  struct mm_b1_format mm_b1_format;
+  struct mm16_m_format mm16_m_format;
+  struct mm16_rb_format mm16_rb_format;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct mm16_rb_format mm16_rb_format;
- struct mm16_r3_format mm16_r3_format;
- struct mm16_r5_format mm16_r5_format;
+  struct mm16_r3_format mm16_r3_format;
+  struct mm16_r5_format mm16_r5_format;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 union mips16e_instruction {
- unsigned int full : 16;
- struct m16e_rr rr;
- struct m16e_jal jal;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct m16e_i64 i64;
- struct m16e_ri64 ri64;
- struct m16e_ri ri;
- struct m16e_rri rri;
+  unsigned int full : 16;
+  struct m16e_rr rr;
+  struct m16e_jal jal;
+  struct m16e_i64 i64;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct m16e_i8 i8;
+  struct m16e_ri64 ri64;
+  struct m16e_ri ri;
+  struct m16e_rri rri;
+  struct m16e_i8 i8;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/kvm.h b/libc/kernel/uapi/asm-mips/asm/kvm.h
index 908ab9d..0206d16 100644
--- a/libc/kernel/uapi/asm-mips/asm/kvm.h
+++ b/libc/kernel/uapi/asm-mips/asm/kvm.h
@@ -21,22 +21,22 @@
 #include <linux/types.h>
 struct kvm_regs {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 gpr[32];
- __u64 hi;
- __u64 lo;
- __u64 pc;
+  __u64 gpr[32];
+  __u64 hi;
+  __u64 lo;
+  __u64 pc;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct kvm_fpu {
- __u64 fpr[32];
- __u32 fir;
+  __u64 fpr[32];
+  __u32 fir;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 fccr;
- __u32 fexr;
- __u32 fenr;
- __u32 fcsr;
+  __u32 fccr;
+  __u32 fexr;
+  __u32 fenr;
+  __u32 fcsr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 pad;
+  __u32 pad;
 };
 #define KVM_REG_MIPS_R0 (KVM_REG_MIPS | KVM_REG_SIZE_U64 | 0)
 #define KVM_REG_MIPS_R1 (KVM_REG_MIPS | KVM_REG_SIZE_U64 | 1)
@@ -82,13 +82,13 @@
 #define KVM_REG_MIPS_LO (KVM_REG_MIPS | KVM_REG_SIZE_U64 | 33)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KVM_REG_MIPS_PC (KVM_REG_MIPS | KVM_REG_SIZE_U64 | 34)
-#define KVM_REG_MIPS_COUNT_CTL (KVM_REG_MIPS | KVM_REG_SIZE_U64 |   0x20000 | 0)
+#define KVM_REG_MIPS_COUNT_CTL (KVM_REG_MIPS | KVM_REG_SIZE_U64 | 0x20000 | 0)
 #define KVM_REG_MIPS_COUNT_CTL_DC 0x00000001
-#define KVM_REG_MIPS_COUNT_RESUME (KVM_REG_MIPS | KVM_REG_SIZE_U64 |   0x20000 | 1)
+#define KVM_REG_MIPS_COUNT_RESUME (KVM_REG_MIPS | KVM_REG_SIZE_U64 | 0x20000 | 1)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KVM_REG_MIPS_COUNT_HZ (KVM_REG_MIPS | KVM_REG_SIZE_U64 |   0x20000 | 2)
+#define KVM_REG_MIPS_COUNT_HZ (KVM_REG_MIPS | KVM_REG_SIZE_U64 | 0x20000 | 2)
 struct kvm_debug_exit_arch {
- __u64 epc;
+  __u64 epc;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct kvm_guest_debug_arch {
@@ -99,8 +99,8 @@
 struct kvm_sregs {
 };
 struct kvm_mips_interrupt {
- __u32 cpu;
+  __u32 cpu;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 irq;
+  __u32 irq;
 };
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/msgbuf.h b/libc/kernel/uapi/asm-mips/asm/msgbuf.h
index efae148..3e700b3 100644
--- a/libc/kernel/uapi/asm-mips/asm/msgbuf.h
+++ b/libc/kernel/uapi/asm-mips/asm/msgbuf.h
@@ -19,31 +19,31 @@
 #ifndef _ASM_MSGBUF_H
 #define _ASM_MSGBUF_H
 struct msqid64_ds {
- struct ipc64_perm msg_perm;
+  struct ipc64_perm msg_perm;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __kernel_time_t msg_stime;
+  __kernel_time_t msg_stime;
 #ifndef __mips64
- unsigned long __unused1;
+  unsigned long __unused1;
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __kernel_time_t msg_rtime;
+  __kernel_time_t msg_rtime;
 #ifndef __mips64
- unsigned long __unused2;
+  unsigned long __unused2;
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __kernel_time_t msg_ctime;
+  __kernel_time_t msg_ctime;
 #ifndef __mips64
- unsigned long __unused3;
+  unsigned long __unused3;
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long msg_cbytes;
- unsigned long msg_qnum;
- unsigned long msg_qbytes;
- __kernel_pid_t msg_lspid;
+  unsigned long msg_cbytes;
+  unsigned long msg_qnum;
+  unsigned long msg_qbytes;
+  __kernel_pid_t msg_lspid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __kernel_pid_t msg_lrpid;
- unsigned long __unused4;
- unsigned long __unused5;
+  __kernel_pid_t msg_lrpid;
+  unsigned long __unused4;
+  unsigned long __unused5;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/posix_types.h b/libc/kernel/uapi/asm-mips/asm/posix_types.h
index e85821c..25a9e3c 100644
--- a/libc/kernel/uapi/asm-mips/asm/posix_types.h
+++ b/libc/kernel/uapi/asm-mips/asm/posix_types.h
@@ -24,7 +24,7 @@
 #define __kernel_daddr_t __kernel_daddr_t
 #if _MIPS_SZLONG == 32
 typedef struct {
- long val[2];
+  long val[2];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } __kernel_fsid_t;
 #define __kernel_fsid_t __kernel_fsid_t
diff --git a/libc/kernel/uapi/asm-mips/asm/ptrace.h b/libc/kernel/uapi/asm-mips/asm/ptrace.h
index 1f533e4..48010e5 100644
--- a/libc/kernel/uapi/asm-mips/asm/ptrace.h
+++ b/libc/kernel/uapi/asm-mips/asm/ptrace.h
@@ -34,16 +34,16 @@
 #define DSP_CONTROL 77
 #define ACX 78
 struct pt_regs {
- __u64 regs[32];
+  __u64 regs[32];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 lo;
- __u64 hi;
- __u64 cp0_epc;
- __u64 cp0_badvaddr;
+  __u64 lo;
+  __u64 hi;
+  __u64 cp0_epc;
+  __u64 cp0_badvaddr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 cp0_status;
- __u64 cp0_cause;
-} __attribute__ ((aligned (8)));
+  __u64 cp0_status;
+  __u64 cp0_cause;
+} __attribute__((aligned(8)));
 #define PTRACE_GETREGS 12
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PTRACE_SETREGS 13
@@ -61,32 +61,32 @@
 #define PTRACE_GET_THREAD_AREA_3264 0xc4
 enum pt_watch_style {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- pt_watch_style_mips32,
- pt_watch_style_mips64
+  pt_watch_style_mips32,
+  pt_watch_style_mips64
 };
 struct mips32_watch_regs {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int watchlo[8];
- unsigned short watchhi[8];
- unsigned short watch_masks[8];
- unsigned int num_valid;
+  unsigned int watchlo[8];
+  unsigned short watchhi[8];
+  unsigned short watch_masks[8];
+  unsigned int num_valid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } __attribute__((aligned(8)));
 struct mips64_watch_regs {
- unsigned long long watchlo[8];
- unsigned short watchhi[8];
+  unsigned long long watchlo[8];
+  unsigned short watchhi[8];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short watch_masks[8];
- unsigned int num_valid;
+  unsigned short watch_masks[8];
+  unsigned int num_valid;
 } __attribute__((aligned(8)));
 struct pt_watch_regs {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- enum pt_watch_style style;
- union {
- struct mips32_watch_regs mips32;
- struct mips64_watch_regs mips64;
+  enum pt_watch_style style;
+  union {
+    struct mips32_watch_regs mips32;
+    struct mips64_watch_regs mips64;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- };
+  };
 };
 #define PTRACE_GET_WATCH_REGS 0xd0
 #define PTRACE_SET_WATCH_REGS 0xd1
diff --git a/libc/kernel/uapi/asm-mips/asm/reg.h b/libc/kernel/uapi/asm-mips/asm/reg.h
index 35c89f7..c0f003e 100644
--- a/libc/kernel/uapi/asm-mips/asm/reg.h
+++ b/libc/kernel/uapi/asm-mips/asm/reg.h
@@ -168,7 +168,7 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EF_UNUSED0 MIPS32_EF_UNUSED0
 #define EF_SIZE MIPS32_EF_SIZE
-#elif _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
+#elif _MIPS_SIM==_MIPS_SIM_ABI64||_MIPS_SIM==_MIPS_SIM_NABI32
 #define EF_R0 MIPS64_EF_R0
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EF_R1 MIPS64_EF_R1
diff --git a/libc/kernel/uapi/asm-mips/asm/sembuf.h b/libc/kernel/uapi/asm-mips/asm/sembuf.h
index b524f68..0a8d4d9 100644
--- a/libc/kernel/uapi/asm-mips/asm/sembuf.h
+++ b/libc/kernel/uapi/asm-mips/asm/sembuf.h
@@ -19,13 +19,13 @@
 #ifndef _ASM_SEMBUF_H
 #define _ASM_SEMBUF_H
 struct semid64_ds {
- struct ipc64_perm sem_perm;
+  struct ipc64_perm sem_perm;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __kernel_time_t sem_otime;
- __kernel_time_t sem_ctime;
- unsigned long sem_nsems;
- unsigned long __unused1;
+  __kernel_time_t sem_otime;
+  __kernel_time_t sem_ctime;
+  unsigned long sem_nsems;
+  unsigned long __unused1;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long __unused2;
+  unsigned long __unused2;
 };
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/sgidefs.h b/libc/kernel/uapi/asm-mips/asm/sgidefs.h
index d63f15e..e8b5f6f 100644
--- a/libc/kernel/uapi/asm-mips/asm/sgidefs.h
+++ b/libc/kernel/uapi/asm-mips/asm/sgidefs.h
@@ -19,7 +19,7 @@
 #ifndef __ASM_SGIDEFS_H
 #define __ASM_SGIDEFS_H
 #ifndef __linux__
-#error Use a Linux compiler or give up.
+#error Use a Linux compiler or give up .
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #define _MIPS_ISA_MIPS1 1
diff --git a/libc/kernel/uapi/asm-mips/asm/shmbuf.h b/libc/kernel/uapi/asm-mips/asm/shmbuf.h
index 3f7d0b1..8d41650 100644
--- a/libc/kernel/uapi/asm-mips/asm/shmbuf.h
+++ b/libc/kernel/uapi/asm-mips/asm/shmbuf.h
@@ -19,32 +19,32 @@
 #ifndef _ASM_SHMBUF_H
 #define _ASM_SHMBUF_H
 struct shmid64_ds {
- struct ipc64_perm shm_perm;
+  struct ipc64_perm shm_perm;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t shm_segsz;
- __kernel_time_t shm_atime;
- __kernel_time_t shm_dtime;
- __kernel_time_t shm_ctime;
+  size_t shm_segsz;
+  __kernel_time_t shm_atime;
+  __kernel_time_t shm_dtime;
+  __kernel_time_t shm_ctime;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __kernel_pid_t shm_cpid;
- __kernel_pid_t shm_lpid;
- unsigned long shm_nattch;
- unsigned long __unused1;
+  __kernel_pid_t shm_cpid;
+  __kernel_pid_t shm_lpid;
+  unsigned long shm_nattch;
+  unsigned long __unused1;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long __unused2;
+  unsigned long __unused2;
 };
 struct shminfo64 {
- unsigned long shmmax;
+  unsigned long shmmax;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long shmmin;
- unsigned long shmmni;
- unsigned long shmseg;
- unsigned long shmall;
+  unsigned long shmmin;
+  unsigned long shmmni;
+  unsigned long shmseg;
+  unsigned long shmall;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long __unused1;
- unsigned long __unused2;
- unsigned long __unused3;
- unsigned long __unused4;
+  unsigned long __unused1;
+  unsigned long __unused2;
+  unsigned long __unused3;
+  unsigned long __unused4;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/sigcontext.h b/libc/kernel/uapi/asm-mips/asm/sigcontext.h
index 8a877db..59870bc 100644
--- a/libc/kernel/uapi/asm-mips/asm/sigcontext.h
+++ b/libc/kernel/uapi/asm-mips/asm/sigcontext.h
@@ -23,28 +23,28 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #if _MIPS_SIM == _MIPS_SIM_ABI32
 struct sigcontext {
- unsigned int sc_regmask;
- unsigned int sc_status;
+  unsigned int sc_regmask;
+  unsigned int sc_status;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long long sc_pc;
- unsigned long long sc_regs[32];
- unsigned long long sc_fpregs[32];
- unsigned int sc_acx;
+  unsigned long long sc_pc;
+  unsigned long long sc_regs[32];
+  unsigned long long sc_fpregs[32];
+  unsigned int sc_acx;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int sc_fpc_csr;
- unsigned int sc_fpc_eir;
- unsigned int sc_used_math;
- unsigned int sc_dsp;
+  unsigned int sc_fpc_csr;
+  unsigned int sc_fpc_eir;
+  unsigned int sc_used_math;
+  unsigned int sc_dsp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long long sc_mdhi;
- unsigned long long sc_mdlo;
- unsigned long sc_hi1;
- unsigned long sc_lo1;
+  unsigned long long sc_mdhi;
+  unsigned long long sc_mdlo;
+  unsigned long sc_hi1;
+  unsigned long sc_lo1;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long sc_hi2;
- unsigned long sc_lo2;
- unsigned long sc_hi3;
- unsigned long sc_lo3;
+  unsigned long sc_hi2;
+  unsigned long sc_lo2;
+  unsigned long sc_hi3;
+  unsigned long sc_lo3;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #endif
@@ -52,24 +52,24 @@
 #include <linux/posix_types.h>
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct sigcontext {
- __u64 sc_regs[32];
- __u64 sc_fpregs[32];
- __u64 sc_mdhi;
+  __u64 sc_regs[32];
+  __u64 sc_fpregs[32];
+  __u64 sc_mdhi;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 sc_hi1;
- __u64 sc_hi2;
- __u64 sc_hi3;
- __u64 sc_mdlo;
+  __u64 sc_hi1;
+  __u64 sc_hi2;
+  __u64 sc_hi3;
+  __u64 sc_mdlo;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 sc_lo1;
- __u64 sc_lo2;
- __u64 sc_lo3;
- __u64 sc_pc;
+  __u64 sc_lo1;
+  __u64 sc_lo2;
+  __u64 sc_lo3;
+  __u64 sc_pc;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sc_fpc_csr;
- __u32 sc_used_math;
- __u32 sc_dsp;
- __u32 sc_reserved;
+  __u32 sc_fpc_csr;
+  __u32 sc_used_math;
+  __u32 sc_dsp;
+  __u32 sc_reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/siginfo.h b/libc/kernel/uapi/asm-mips/asm/siginfo.h
index 599c875..2f95d17 100644
--- a/libc/kernel/uapi/asm-mips/asm/siginfo.h
+++ b/libc/kernel/uapi/asm-mips/asm/siginfo.h
@@ -18,7 +18,7 @@
  ****************************************************************************/
 #ifndef _UAPI_ASM_SIGINFO_H
 #define _UAPI_ASM_SIGINFO_H
-#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(long) + 2*sizeof(int))
+#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(long) + 2 * sizeof(int))
 #undef __ARCH_SI_TRAPNO
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HAVE_ARCH_SIGINFO_T
@@ -27,7 +27,7 @@
 #if _MIPS_SZLONG == 32
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
-#elif _MIPS_SZLONG == 64
+#elif _MIPS_SZLONG==64
 #define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
 #else
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -37,78 +37,78 @@
 #include <asm-generic/siginfo.h>
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct siginfo {
- int si_signo;
- int si_code;
- int si_errno;
+  int si_signo;
+  int si_code;
+  int si_errno;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int __pad0[SI_MAX_SIZE / sizeof(int) - SI_PAD_SIZE - 3];
- union {
- int _pad[SI_PAD_SIZE];
- struct {
+  int __pad0[SI_MAX_SIZE / sizeof(int) - SI_PAD_SIZE - 3];
+  union {
+    int _pad[SI_PAD_SIZE];
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- pid_t _pid;
- __ARCH_SI_UID_T _uid;
- } _kill;
- struct {
+      pid_t _pid;
+      __ARCH_SI_UID_T _uid;
+    } _kill;
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- timer_t _tid;
- int _overrun;
- char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
- sigval_t _sigval;
+      timer_t _tid;
+      int _overrun;
+      char _pad[sizeof(__ARCH_SI_UID_T) - sizeof(int)];
+      sigval_t _sigval;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int _sys_private;
- } _timer;
- struct {
- pid_t _pid;
+      int _sys_private;
+    } _timer;
+    struct {
+      pid_t _pid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __ARCH_SI_UID_T _uid;
- sigval_t _sigval;
- } _rt;
- struct {
+      __ARCH_SI_UID_T _uid;
+      sigval_t _sigval;
+    } _rt;
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- pid_t _pid;
- __ARCH_SI_UID_T _uid;
- int _status;
- clock_t _utime;
+      pid_t _pid;
+      __ARCH_SI_UID_T _uid;
+      int _status;
+      clock_t _utime;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- clock_t _stime;
- } _sigchld;
- struct {
- pid_t _pid;
+      clock_t _stime;
+    } _sigchld;
+    struct {
+      pid_t _pid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- clock_t _utime;
- int _status;
- clock_t _stime;
- } _irix_sigchld;
+      clock_t _utime;
+      int _status;
+      clock_t _stime;
+    } _irix_sigchld;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct {
- void __user *_addr;
+    struct {
+      void __user * _addr;
 #ifdef __ARCH_SI_TRAPNO
- int _trapno;
+      int _trapno;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
- short _addr_lsb;
- } _sigfault;
- struct {
+      short _addr_lsb;
+    } _sigfault;
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __ARCH_SI_BAND_T _band;
- int _fd;
- } _sigpoll;
- struct {
+      __ARCH_SI_BAND_T _band;
+      int _fd;
+    } _sigpoll;
+    struct {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void __user *_call_addr;
- int _syscall;
- unsigned int _arch;
- } _sigsys;
+      void __user * _call_addr;
+      int _syscall;
+      unsigned int _arch;
+    } _sigsys;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- } _sifields;
+  } _sifields;
 } siginfo_t;
 #undef SI_ASYNCIO
 #undef SI_TIMER
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #undef SI_MESGQ
-#define SI_ASYNCIO -2
-#define SI_TIMER __SI_CODE(__SI_TIMER, -3)
-#define SI_MESGQ __SI_CODE(__SI_MESGQ, -4)
+#define SI_ASYNCIO - 2
+#define SI_TIMER __SI_CODE(__SI_TIMER, - 3)
+#define SI_MESGQ __SI_CODE(__SI_MESGQ, - 4)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/signal.h b/libc/kernel/uapi/asm-mips/asm/signal.h
index b774a66..ba88b70 100644
--- a/libc/kernel/uapi/asm-mips/asm/signal.h
+++ b/libc/kernel/uapi/asm-mips/asm/signal.h
@@ -24,7 +24,7 @@
 #define _NSIG_BPW (sizeof(unsigned long) * 8)
 #define _NSIG_WORDS (_KERNEL__NSIG / _NSIG_BPW)
 typedef struct {
- unsigned long sig[_NSIG_WORDS];
+  unsigned long sig[_NSIG_WORDS];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } sigset_t;
 typedef unsigned long old_sigset_t;
@@ -93,16 +93,16 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm-generic/signal-defs.h>
 struct sigaction {
- unsigned int sa_flags;
- __sighandler_t sa_handler;
+  unsigned int sa_flags;
+  __sighandler_t sa_handler;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- sigset_t sa_mask;
+  sigset_t sa_mask;
 };
 typedef struct sigaltstack {
- void __user *ss_sp;
+  void __user * ss_sp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t ss_size;
- int ss_flags;
+  size_t ss_size;
+  int ss_flags;
 } stack_t;
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/asm-mips/asm/stat.h b/libc/kernel/uapi/asm-mips/asm/stat.h
index a71eecb..cf05e5c 100644
--- a/libc/kernel/uapi/asm-mips/asm/stat.h
+++ b/libc/kernel/uapi/asm-mips/asm/stat.h
@@ -23,86 +23,86 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_NABI32
 struct stat {
- unsigned st_dev;
- long st_pad1[3];
+  unsigned st_dev;
+  long st_pad1[3];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ino_t st_ino;
- mode_t st_mode;
- __u32 st_nlink;
- uid_t st_uid;
+  ino_t st_ino;
+  mode_t st_mode;
+  __u32 st_nlink;
+  uid_t st_uid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- gid_t st_gid;
- unsigned st_rdev;
- long st_pad2[2];
- __kernel_off_t st_size;
+  gid_t st_gid;
+  unsigned st_rdev;
+  long st_pad2[2];
+  __kernel_off_t st_size;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long st_pad3;
- time_t st_atime;
- long st_atime_nsec;
- time_t st_mtime;
+  long st_pad3;
+  time_t st_atime;
+  long st_atime_nsec;
+  time_t st_mtime;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long st_mtime_nsec;
- time_t st_ctime;
- long st_ctime_nsec;
- long st_blksize;
+  long st_mtime_nsec;
+  time_t st_ctime;
+  long st_ctime_nsec;
+  long st_blksize;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long st_blocks;
- long st_pad4[14];
+  long st_blocks;
+  long st_pad4[14];
 };
 struct stat64 {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long st_dev;
- unsigned long st_pad0[3];
- unsigned long long st_ino;
- mode_t st_mode;
+  unsigned long st_dev;
+  unsigned long st_pad0[3];
+  unsigned long long st_ino;
+  mode_t st_mode;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 st_nlink;
- uid_t st_uid;
- gid_t st_gid;
- unsigned long st_rdev;
+  __u32 st_nlink;
+  uid_t st_uid;
+  gid_t st_gid;
+  unsigned long st_rdev;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long st_pad1[3];
- long long st_size;
- time_t st_atime;
- unsigned long st_atime_nsec;
+  unsigned long st_pad1[3];
+  long long st_size;
+  time_t st_atime;
+  unsigned long st_atime_nsec;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- time_t st_mtime;
- unsigned long st_mtime_nsec;
- time_t st_ctime;
- unsigned long st_ctime_nsec;
+  time_t st_mtime;
+  unsigned long st_mtime_nsec;
+  time_t st_ctime;
+  unsigned long st_ctime_nsec;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long st_blksize;
- unsigned long st_pad2;
- long long st_blocks;
+  unsigned long st_blksize;
+  unsigned long st_pad2;
+  long long st_blocks;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #if _MIPS_SIM == _MIPS_SIM_ABI64
 struct stat {
- unsigned int st_dev;
+  unsigned int st_dev;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int st_pad0[3];
- unsigned long st_ino;
- mode_t st_mode;
- __u32 st_nlink;
+  unsigned int st_pad0[3];
+  unsigned long st_ino;
+  mode_t st_mode;
+  __u32 st_nlink;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uid_t st_uid;
- gid_t st_gid;
- unsigned int st_rdev;
- unsigned int st_pad1[3];
+  uid_t st_uid;
+  gid_t st_gid;
+  unsigned int st_rdev;
+  unsigned int st_pad1[3];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __kernel_off_t st_size;
- unsigned int st_atime;
- unsigned int st_atime_nsec;
- unsigned int st_mtime;
+  __kernel_off_t st_size;
+  unsigned int st_atime;
+  unsigned int st_atime_nsec;
+  unsigned int st_mtime;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int st_mtime_nsec;
- unsigned int st_ctime;
- unsigned int st_ctime_nsec;
- unsigned int st_blksize;
+  unsigned int st_mtime_nsec;
+  unsigned int st_ctime;
+  unsigned int st_ctime_nsec;
+  unsigned int st_blksize;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int st_pad2;
- unsigned long st_blocks;
+  unsigned int st_pad2;
+  unsigned long st_blocks;
 };
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/asm-mips/asm/statfs.h b/libc/kernel/uapi/asm-mips/asm/statfs.h
index 390b751..36cc3d5 100644
--- a/libc/kernel/uapi/asm-mips/asm/statfs.h
+++ b/libc/kernel/uapi/asm-mips/asm/statfs.h
@@ -22,81 +22,81 @@
 #include <asm/sgidefs.h>
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct statfs {
- long f_type;
+  long f_type;
 #define f_fstyp f_type
- long f_bsize;
+  long f_bsize;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long f_frsize;
- long f_blocks;
- long f_bfree;
- long f_files;
+  long f_frsize;
+  long f_blocks;
+  long f_bfree;
+  long f_files;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long f_ffree;
- long f_bavail;
- __kernel_fsid_t f_fsid;
- long f_namelen;
+  long f_ffree;
+  long f_bavail;
+  __kernel_fsid_t f_fsid;
+  long f_namelen;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long f_flags;
- long f_spare[5];
+  long f_flags;
+  long f_spare[5];
 };
 #if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_NABI32
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct statfs64 {
- __u32 f_type;
- __u32 f_bsize;
- __u32 f_frsize;
+  __u32 f_type;
+  __u32 f_bsize;
+  __u32 f_frsize;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 __pad;
- __u64 f_blocks;
- __u64 f_bfree;
- __u64 f_files;
+  __u32 __pad;
+  __u64 f_blocks;
+  __u64 f_bfree;
+  __u64 f_files;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 f_ffree;
- __u64 f_bavail;
- __kernel_fsid_t f_fsid;
- __u32 f_namelen;
+  __u64 f_ffree;
+  __u64 f_bavail;
+  __kernel_fsid_t f_fsid;
+  __u32 f_namelen;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 f_flags;
- __u32 f_spare[5];
+  __u32 f_flags;
+  __u32 f_spare[5];
 };
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #if _MIPS_SIM == _MIPS_SIM_ABI64
 struct statfs64 {
- long f_type;
- long f_bsize;
+  long f_type;
+  long f_bsize;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long f_frsize;
- long f_blocks;
- long f_bfree;
- long f_files;
+  long f_frsize;
+  long f_blocks;
+  long f_bfree;
+  long f_files;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long f_ffree;
- long f_bavail;
- __kernel_fsid_t f_fsid;
- long f_namelen;
+  long f_ffree;
+  long f_bavail;
+  __kernel_fsid_t f_fsid;
+  long f_namelen;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long f_flags;
- long f_spare[5];
+  long f_flags;
+  long f_spare[5];
 };
 struct compat_statfs64 {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 f_type;
- __u32 f_bsize;
- __u32 f_frsize;
- __u32 __pad;
+  __u32 f_type;
+  __u32 f_bsize;
+  __u32 f_frsize;
+  __u32 __pad;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 f_blocks;
- __u64 f_bfree;
- __u64 f_files;
- __u64 f_ffree;
+  __u64 f_blocks;
+  __u64 f_bfree;
+  __u64 f_files;
+  __u64 f_ffree;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 f_bavail;
- __kernel_fsid_t f_fsid;
- __u32 f_namelen;
- __u32 f_flags;
+  __u64 f_bavail;
+  __kernel_fsid_t f_fsid;
+  __u32 f_namelen;
+  __u32 f_flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 f_spare[5];
+  __u32 f_spare[5];
 };
 #endif
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/termbits.h b/libc/kernel/uapi/asm-mips/asm/termbits.h
index 56cab21..f8f8612 100644
--- a/libc/kernel/uapi/asm-mips/asm/termbits.h
+++ b/libc/kernel/uapi/asm-mips/asm/termbits.h
@@ -26,38 +26,38 @@
 #define NCCS 23
 struct termios {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- tcflag_t c_iflag;
- tcflag_t c_oflag;
- tcflag_t c_cflag;
- tcflag_t c_lflag;
+  tcflag_t c_iflag;
+  tcflag_t c_oflag;
+  tcflag_t c_cflag;
+  tcflag_t c_lflag;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- cc_t c_line;
- cc_t c_cc[NCCS];
+  cc_t c_line;
+  cc_t c_cc[NCCS];
 };
 struct termios2 {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- tcflag_t c_iflag;
- tcflag_t c_oflag;
- tcflag_t c_cflag;
- tcflag_t c_lflag;
+  tcflag_t c_iflag;
+  tcflag_t c_oflag;
+  tcflag_t c_cflag;
+  tcflag_t c_lflag;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- cc_t c_line;
- cc_t c_cc[NCCS];
- speed_t c_ispeed;
- speed_t c_ospeed;
+  cc_t c_line;
+  cc_t c_cc[NCCS];
+  speed_t c_ispeed;
+  speed_t c_ospeed;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ktermios {
- tcflag_t c_iflag;
- tcflag_t c_oflag;
+  tcflag_t c_iflag;
+  tcflag_t c_oflag;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- tcflag_t c_cflag;
- tcflag_t c_lflag;
- cc_t c_line;
- cc_t c_cc[NCCS];
+  tcflag_t c_cflag;
+  tcflag_t c_lflag;
+  cc_t c_line;
+  cc_t c_cc[NCCS];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- speed_t c_ispeed;
- speed_t c_ospeed;
+  speed_t c_ispeed;
+  speed_t c_ospeed;
 };
 #define VINTR 0
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/asm-mips/asm/termios.h b/libc/kernel/uapi/asm-mips/asm/termios.h
index 16d822a..5174254 100644
--- a/libc/kernel/uapi/asm-mips/asm/termios.h
+++ b/libc/kernel/uapi/asm-mips/asm/termios.h
@@ -23,51 +23,51 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/ioctls.h>
 struct sgttyb {
- char sg_ispeed;
- char sg_ospeed;
+  char sg_ispeed;
+  char sg_ospeed;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- char sg_erase;
- char sg_kill;
- int sg_flags;
+  char sg_erase;
+  char sg_kill;
+  int sg_flags;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct tchars {
- char t_intrc;
- char t_quitc;
- char t_startc;
+  char t_intrc;
+  char t_quitc;
+  char t_startc;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- char t_stopc;
- char t_eofc;
- char t_brkc;
+  char t_stopc;
+  char t_eofc;
+  char t_brkc;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ltchars {
- char t_suspc;
- char t_dsuspc;
- char t_rprntc;
+  char t_suspc;
+  char t_dsuspc;
+  char t_rprntc;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- char t_flushc;
- char t_werasc;
- char t_lnextc;
+  char t_flushc;
+  char t_werasc;
+  char t_lnextc;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct winsize {
- unsigned short ws_row;
- unsigned short ws_col;
- unsigned short ws_xpixel;
+  unsigned short ws_row;
+  unsigned short ws_col;
+  unsigned short ws_xpixel;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short ws_ypixel;
+  unsigned short ws_ypixel;
 };
 #define NCC 8
 struct termio {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short c_iflag;
- unsigned short c_oflag;
- unsigned short c_cflag;
- unsigned short c_lflag;
+  unsigned short c_iflag;
+  unsigned short c_oflag;
+  unsigned short c_cflag;
+  unsigned short c_lflag;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- char c_line;
- unsigned char c_cc[NCCS];
+  char c_line;
+  unsigned char c_cc[NCCS];
 };
 #define TIOCM_LE 0x001
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
