// File: /workspace/github_c_makefile_star2_O3/Oric4ever[P]lcc65/6502/build/../src/types.c
// Function: typeInit
void typeInit() {
#define xx(v,name,op,metrics) { Symbol p = install(string(name), &types, 1); \
	v = p->type = tynode(op, 0, metrics+1?(Generic)p:0); p->addressed = (metrics); \
	assert(v->align == 0 || v->size%v->align == 0); }
	xx(chartype,	  "char",		CHAR,	  CHAR_METRICS);
	xx(doubletype,	  "double",		DOUBLE,	  DOUBLE_METRICS);
	xx(floattype,	  "float",		FLOAT,	  FLOAT_METRICS);
	xx(inttype,	  "int",		INT,	  INT_METRICS);
	xx(longdouble,	  "long double",	DOUBLE,	  DOUBLE_METRICS);
	xx(longtype,	  "long int",		INT,	  INT_METRICS);
	xx(shorttype,	  "short",		SHORT,	  SHORT_METRICS);
	xx(signedchar,	  "signed char",	CHAR,	  CHAR_METRICS);
	xx(unsignedchar,  "unsigned char",	CHAR,	  CHAR_METRICS);
	xx(unsignedlong,  "unsigned long int",	UNSIGNED, INT_METRICS);
	xx(unsignedshort, "unsigned short int",	SHORT,	  SHORT_METRICS);
	xx(unsignedtype,  "unsigned int",	UNSIGNED, INT_METRICS);
	xx(voidtype,	  "void",		VOID,	  VOID_METRICS);
#undef xx

#define xx(v,name,adr) v = install(string(name), &types, 1); v->addressed = (adr);
	xx(pointersym,	"T*",	 POINTER_METRICS);
#undef xx

	voidptype = ptr(voidtype);
	assert(voidptype->align > 0 && voidptype->size%voidptype->align == 0);
	assert(unsignedtype->size >= voidptype->size);
}

// Assembly:
pushq %rbx
leaq 0x934d(%rip), %rdi      # 0x21415
callq 0x16b3d
leaq 0x1263c(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x3, %edi
xorl %esi, %esi
movl $0x1, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1ae78(%rip)     # 0x32f80
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x18122
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x18658
leaq 0x91dd(%rip), %rdi      # 0x21306
callq 0x16b3d
leaq 0x125db(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x2, %edi
xorl %esi, %esi
movl $0x5, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1ae1f(%rip)     # 0x32f88
orb $0x10, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x18183
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x18677
leaq 0x7ee1(%rip), %rdi      # 0x2006b
callq 0x16b3d
leaq 0x1257a(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x1, %edi
xorl %esi, %esi
movl $0x5, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1adc6(%rip)     # 0x32f90
orb $0x10, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x181e4
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x18696
leaq 0x9338(%rip), %rdi      # 0x21523
callq 0x16b3d
leaq 0x12519(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x5, %edi
xorl %esi, %esi
movl $0x2, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1ad6d(%rip)     # 0x32f98
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x18245
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x186b5
leaq 0x90b5(%rip), %rdi      # 0x21301
callq 0x16b3d
leaq 0x124b8(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x2, %edi
xorl %esi, %esi
movl $0x5, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1ad14(%rip)     # 0x32fa0
orb $0x10, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x182a6
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x186d4
leaq 0x91be(%rip), %rdi      # 0x2146b
callq 0x16b3d
leaq 0x12457(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x5, %edi
xorl %esi, %esi
movl $0x2, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1acbb(%rip)     # 0x32fa8
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x18307
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x186f3
leaq 0x7d63(%rip), %rdi      # 0x20071
callq 0x16b3d
leaq 0x123f6(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x4, %edi
xorl %esi, %esi
movl $0x1, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1ac62(%rip)     # 0x32fb0
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x18368
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x18712
leaq 0x909f(%rip), %rdi      # 0x2140e
callq 0x16b3d
leaq 0x12395(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x3, %edi
xorl %esi, %esi
movl $0x1, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1ac09(%rip)     # 0x32fb8
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x183c9
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x18731
leaq 0x903c(%rip), %rdi      # 0x2140c
callq 0x16b3d
leaq 0x12334(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x3, %edi
xorl %esi, %esi
movl $0x1, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1abb0(%rip)     # 0x32fc0
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x1842a
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x18750
leaq 0x9031(%rip), %rdi      # 0x21462
callq 0x16b3d
leaq 0x122d3(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x6, %edi
xorl %esi, %esi
movl $0x2, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1ab57(%rip)     # 0x32fc8
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x1848b
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x1876f
leaq 0x902a(%rip), %rdi      # 0x214bc
callq 0x16b3d
leaq 0x12272(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x4, %edi
xorl %esi, %esi
movl $0x1, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1aafe(%rip)     # 0x32fd0
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x184ec
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x1878e
leaq 0x9027(%rip), %rdi      # 0x2151a
callq 0x16b3d
leaq 0x12211(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x6, %edi
xorl %esi, %esi
movl $0x2, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1aaa5(%rip)     # 0x32fd8
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x1854d
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x187ad
leaq 0x7b2c(%rip), %rdi      # 0x20080
callq 0x16b3d
leaq 0x121b0(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, %rbx
movl $0x8, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x20(%rbx)
movq %rax, 0x1aa52(%rip)     # 0x32fe0
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x185a8
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x187cc
leaq 0x8ffc(%rip), %rdi      # 0x215ab
callq 0x16b3d
leaq 0x12155(%rip), %rsi     # 0x2a710
movq %rax, %rdi
movl $0x1, %edx
callq 0x172de
movq %rax, 0x1aa19(%rip)     # 0x32fe8
andb $-0x11, 0x1b(%rax)
movq 0x1aa06(%rip), %rsi     # 0x32fe0
movl $0x7, %edi
movl $0x2, %edx
movl $0x1, %ecx
movq %rax, %r8
callq 0x187eb
movq %rax, 0x1a9f8(%rip)     # 0x32ff0
movswl 0x4(%rax), %esi
testl %esi, %esi
jle 0x1861a
movl 0x8(%rax), %ecx
movl %ecx, %eax
cltd
idivl %esi
testl %edx, %edx
jne 0x1861a
movq 0x1a9c5(%rip), %rax     # 0x32fd8
cmpl %ecx, 0x8(%rax)
jl 0x18639
popq %rbx
retq
leaq 0x8f8d(%rip), %rdi      # 0x215ae
leaq 0x8c00(%rip), %rsi      # 0x21228
leaq 0x8c08(%rip), %rcx      # 0x21237
movl $0x3b, %edx
callq 0x30d0
leaq 0x8fac(%rip), %rdi      # 0x215ec
leaq 0x8be1(%rip), %rsi      # 0x21228
leaq 0x8be9(%rip), %rcx      # 0x21237
movl $0x3c, %edx
callq 0x30d0
leaq 0x8b8d(%rip), %rdi      # 0x211ec
leaq 0x8bc2(%rip), %rsi      # 0x21228
leaq 0x8bca(%rip), %rcx      # 0x21237
movl $0x27, %edx
callq 0x30d0
leaq 0x8bc9(%rip), %rdi      # 0x21247
leaq 0x8ba3(%rip), %rsi      # 0x21228
leaq 0x8bab(%rip), %rcx      # 0x21237
movl $0x28, %edx
callq 0x30d0
leaq 0x8bec(%rip), %rdi      # 0x21289
leaq 0x8b84(%rip), %rsi      # 0x21228
leaq 0x8b8c(%rip), %rcx      # 0x21237
movl $0x29, %edx
callq 0x30d0
leaq 0x8c0c(%rip), %rdi      # 0x212c8
leaq 0x8b65(%rip), %rsi      # 0x21228
leaq 0x8b6d(%rip), %rcx      # 0x21237
movl $0x2a, %edx
callq 0x30d0
leaq 0x8c32(%rip), %rdi      # 0x2130d
leaq 0x8b46(%rip), %rsi      # 0x21228
leaq 0x8b4e(%rip), %rcx      # 0x21237
movl $0x2b, %edx
callq 0x30d0
leaq 0x8c55(%rip), %rdi      # 0x2134f
leaq 0x8b27(%rip), %rsi      # 0x21228
leaq 0x8b2f(%rip), %rcx      # 0x21237
movl $0x2c, %edx
callq 0x30d0
leaq 0x8c72(%rip), %rdi      # 0x2138b
leaq 0x8b08(%rip), %rsi      # 0x21228
leaq 0x8b10(%rip), %rcx      # 0x21237
movl $0x2d, %edx
callq 0x30d0
leaq 0x8c92(%rip), %rdi      # 0x213ca
leaq 0x8ae9(%rip), %rsi      # 0x21228
leaq 0x8af1(%rip), %rcx      # 0x21237
movl $0x2e, %edx
callq 0x30d0
leaq 0x8cc3(%rip), %rdi      # 0x2141a
leaq 0x8aca(%rip), %rsi      # 0x21228
leaq 0x8ad2(%rip), %rcx      # 0x21237
movl $0x2f, %edx
callq 0x30d0
leaq 0x8cfe(%rip), %rdi      # 0x21474
leaq 0x8aab(%rip), %rsi      # 0x21228
leaq 0x8ab3(%rip), %rcx      # 0x21237
movl $0x30, %edx
callq 0x30d0
leaq 0x8d3a(%rip), %rdi      # 0x214cf
leaq 0x8a8c(%rip), %rsi      # 0x21228
leaq 0x8a94(%rip), %rcx      # 0x21237
movl $0x31, %edx
callq 0x30d0
leaq 0x8d73(%rip), %rdi      # 0x21527
leaq 0x8a6d(%rip), %rsi      # 0x21228
leaq 0x8a75(%rip), %rcx      # 0x21237
movl $0x32, %edx
callq 0x30d0
leaq 0x8d9c(%rip), %rdi      # 0x2156f
leaq 0x8a4e(%rip), %rsi      # 0x21228
leaq 0x8a56(%rip), %rcx      # 0x21237
movl $0x33, %edx
callq 0x30d0