1#include <scc/mach.h>2#include <scc/scc.h>34#include "../as.h"5#include "../x86/proc.h"67unsigned long long maxaddr = 0xFFFFFFFF;8int endian = LITTLE_ENDIAN;910void11iarch(void)12{13 static struct {14 char *name;15 unsigned char type;16 } regs[] = {17 "CS", AREG_CS,18 "DS", AREG_DS,19 "SS", AREG_SS,20 "ES", AREG_ES,21 "FS", AREG_FS,22 "GS", AREG_GS,2324 "AX", AREG_AX,25 "AL", AREG_AL,26 "AH", AREG_AH,27 "EAX", AREG_EAX,2829 "BC", AREG_BX,30 "BL", AREG_BL,31 "BH", AREG_BH,32 "EBX", AREG_EBX,3334 "CX", AREG_CX,35 "CL", AREG_CL,36 "CH", AREG_CH,37 "ECX", AREG_ECX,3839 "DX", AREG_DX,40 "DL", AREG_DL,41 "DH", AREG_DH,42 "EDX", AREG_EDX,4344 "SI", AREG_SI,45 "ESI", AREG_ESI,46 "DI", AREG_DI,47 "EDI", AREG_EDI,4849 "SP", AREG_SP,50 "ESP", AREG_ESP,5152 "BP", AREG_BP,53 "EBP", AREG_EBP,5455 "R0", AREG_R0,56 "MM0", AREG_MM0,57 "R1", AREG_R1,58 "MM1", AREG_MM1,59 "R2", AREG_R2,60 "MM2", AREG_MM2,61 "R3", AREG_R3,62 "MM3", AREG_MM3,63 "R4", AREG_R4,64 "MM4", AREG_MM4,65 "R5", AREG_R5,66 "MM5", AREG_MM5,67 "R6", AREG_R6,68 "MM6", AREG_MM6,69 "R7", AREG_R7,70 "MM7", AREG_MM7,7172 "XMM0", AREG_XMM0,73 "XMM1", AREG_XMM1,74 "XMM2", AREG_XMM2,75 "XMM3", AREG_XMM3,76 "XMM4", AREG_XMM4,77 "XMM5", AREG_XMM5,78 "XMM6", AREG_XMM6,79 "XMM7", AREG_XMM7,8081 "YMM0", AREG_YMM0,82 "YMM1", AREG_YMM1,83 "YMM2", AREG_YMM2,84 "YMM3", AREG_YMM3,85 "YMM4", AREG_YMM4,86 "YMM5", AREG_YMM5,87 "YMM6", AREG_YMM6,88 "YMM7", AREG_YMM7,8990 "MXCSR", AREG_MXCSR,9192 NULL93 }, *bp;9495 for (bp = regs; bp->name; ++bp) {96 Symbol *sym = lookup(bp->name);97 sym->flags = FREG;98 sym->value = bp->type;99 }100}