// File: /workspace/github_c_makefile_star2_O2/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 %r14
pushq %rbx
pushq %rax
leaq 0x8812(%rip), %rdi      # 0x1f415
callq 0x157b6
leaq 0x12b01(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x3
popq %rdi
xorl %esi, %esi
movl %ebx, %edx
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b345(%rip)     # 0x31f80
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16c56
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x1712d
leaq 0x86a9(%rip), %rdi      # 0x1f306
callq 0x157b6
leaq 0x12aa7(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x2
popq %rdi
pushq $0x5
popq %rdx
xorl %esi, %esi
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b2f2(%rip)     # 0x31f88
orb $0x10, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16cb1
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x17149
leaq 0x73b3(%rip), %rdi      # 0x1e06b
callq 0x157b6
leaq 0x12a4c(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x5
popq %rdx
movl %ebx, %edi
xorl %esi, %esi
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b2a0(%rip)     # 0x31f90
orb $0x10, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16d0b
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x17165
leaq 0x8811(%rip), %rdi      # 0x1f523
callq 0x157b6
leaq 0x129f2(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x5
popq %rdi
pushq $0x2
popq %rdx
xorl %esi, %esi
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b24d(%rip)     # 0x31f98
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16d66
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x17181
leaq 0x8594(%rip), %rdi      # 0x1f301
callq 0x157b6
leaq 0x12997(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x2
popq %rdi
pushq $0x5
popq %rdx
xorl %esi, %esi
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b1fa(%rip)     # 0x31fa0
orb $0x10, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16dc1
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x1719d
leaq 0x86a3(%rip), %rdi      # 0x1f46b
callq 0x157b6
leaq 0x1293c(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x5
popq %rdi
pushq $0x2
popq %rdx
xorl %esi, %esi
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b1a7(%rip)     # 0x31fa8
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16e1c
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x171b9
leaq 0x724e(%rip), %rdi      # 0x1e071
callq 0x157b6
leaq 0x128e1(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x4
popq %rdi
xorl %esi, %esi
movl %ebx, %edx
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b155(%rip)     # 0x31fb0
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16e76
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x171d5
leaq 0x8591(%rip), %rdi      # 0x1f40e
callq 0x157b6
leaq 0x12887(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x3
popq %rdi
xorl %esi, %esi
movl %ebx, %edx
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b103(%rip)     # 0x31fb8
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16ed0
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x171f1
leaq 0x8535(%rip), %rdi      # 0x1f40c
callq 0x157b6
leaq 0x1282d(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x3
popq %rdi
xorl %esi, %esi
movl %ebx, %edx
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b0b1(%rip)     # 0x31fc0
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16f2a
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x1720a
leaq 0x8531(%rip), %rdi      # 0x1f462
callq 0x157b6
leaq 0x127d3(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x6
popq %rdi
pushq $0x2
popq %rdx
xorl %esi, %esi
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b05e(%rip)     # 0x31fc8
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16f85
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x17223
leaq 0x8530(%rip), %rdi      # 0x1f4bc
callq 0x157b6
leaq 0x12778(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x4
popq %rdi
xorl %esi, %esi
movl %ebx, %edx
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1b00c(%rip)     # 0x31fd0
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x16fdf
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x1723c
leaq 0x8534(%rip), %rdi      # 0x1f51a
callq 0x157b6
leaq 0x1271e(%rip), %rsi     # 0x29710
pushq $0x1
popq %rbx
movq %rax, %rdi
movl %ebx, %edx
callq 0x15f13
movq %rax, %r14
pushq $0x6
popq %rdi
pushq $0x2
popq %rdx
xorl %esi, %esi
movl %ebx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%r14)
movq %rax, 0x1afb9(%rip)     # 0x31fd8
andb $-0x11, 0x1b(%r14)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x1703a
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x17255
leaq 0x703f(%rip), %rdi      # 0x1e080
callq 0x157b6
leaq 0x126c3(%rip), %rsi     # 0x29710
pushq $0x1
popq %rdx
movq %rax, %rdi
callq 0x15f13
movq %rax, %rbx
pushq $0x8
popq %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %rax, %r8
callq 0x1728b
movq %rax, 0x20(%rbx)
movq %rax, 0x1af69(%rip)     # 0x31fe0
andb $-0x11, 0x1b(%rbx)
movswl 0x4(%rax), %ecx
testl %ecx, %ecx
je 0x17091
movl 0x8(%rax), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x1726e
leaq 0x8513(%rip), %rdi      # 0x1f5ab
callq 0x157b6
leaq 0x1266c(%rip), %rsi     # 0x29710
pushq $0x1
popq %rdx
movq %rax, %rdi
callq 0x15f13
movq %rax, 0x1af32(%rip)     # 0x31fe8
andb $-0x11, 0x1b(%rax)
movq 0x1af1f(%rip), %rdi     # 0x31fe0
callq 0x1736a
movq %rax, 0x1af23(%rip)     # 0x31ff0
movswl 0x4(%rax), %esi
testl %esi, %esi
jle 0x170f5
movl 0x8(%rax), %ecx
movl %ecx, %eax
cltd
idivl %esi
testl %edx, %edx
jne 0x170f5
movq 0x1aef0(%rip), %rax     # 0x31fd8
cmpl %ecx, 0x8(%rax)
jl 0x17111
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x84b2(%rip), %rdi      # 0x1f5ae
leaq 0x8125(%rip), %rsi      # 0x1f228
leaq 0x812d(%rip), %rcx      # 0x1f237
pushq $0x3b
jmp 0x17285
leaq 0x84d4(%rip), %rdi      # 0x1f5ec
leaq 0x8109(%rip), %rsi      # 0x1f228
leaq 0x8111(%rip), %rcx      # 0x1f237
pushq $0x3c
jmp 0x17285
leaq 0x80b8(%rip), %rdi      # 0x1f1ec
leaq 0x80ed(%rip), %rsi      # 0x1f228
leaq 0x80f5(%rip), %rcx      # 0x1f237
pushq $0x27
jmp 0x17285
leaq 0x80f7(%rip), %rdi      # 0x1f247
leaq 0x80d1(%rip), %rsi      # 0x1f228
leaq 0x80d9(%rip), %rcx      # 0x1f237
pushq $0x28
jmp 0x17285
leaq 0x811d(%rip), %rdi      # 0x1f289
leaq 0x80b5(%rip), %rsi      # 0x1f228
leaq 0x80bd(%rip), %rcx      # 0x1f237
pushq $0x29
jmp 0x17285
leaq 0x8140(%rip), %rdi      # 0x1f2c8
leaq 0x8099(%rip), %rsi      # 0x1f228
leaq 0x80a1(%rip), %rcx      # 0x1f237
pushq $0x2a
jmp 0x17285
leaq 0x8169(%rip), %rdi      # 0x1f30d
leaq 0x807d(%rip), %rsi      # 0x1f228
leaq 0x8085(%rip), %rcx      # 0x1f237
pushq $0x2b
jmp 0x17285
leaq 0x818f(%rip), %rdi      # 0x1f34f
leaq 0x8061(%rip), %rsi      # 0x1f228
leaq 0x8069(%rip), %rcx      # 0x1f237
pushq $0x2c
jmp 0x17285
leaq 0x81af(%rip), %rdi      # 0x1f38b
leaq 0x8045(%rip), %rsi      # 0x1f228
leaq 0x804d(%rip), %rcx      # 0x1f237
pushq $0x2d
jmp 0x17285
leaq 0x81d2(%rip), %rdi      # 0x1f3ca
leaq 0x8029(%rip), %rsi      # 0x1f228
leaq 0x8031(%rip), %rcx      # 0x1f237
pushq $0x2e
jmp 0x17285
leaq 0x8209(%rip), %rdi      # 0x1f41a
leaq 0x8010(%rip), %rsi      # 0x1f228
leaq 0x8018(%rip), %rcx      # 0x1f237
pushq $0x2f
jmp 0x17285
leaq 0x824a(%rip), %rdi      # 0x1f474
leaq 0x7ff7(%rip), %rsi      # 0x1f228
leaq 0x7fff(%rip), %rcx      # 0x1f237
pushq $0x30
jmp 0x17285
leaq 0x828c(%rip), %rdi      # 0x1f4cf
leaq 0x7fde(%rip), %rsi      # 0x1f228
leaq 0x7fe6(%rip), %rcx      # 0x1f237
pushq $0x31
jmp 0x17285
leaq 0x82cb(%rip), %rdi      # 0x1f527
leaq 0x7fc5(%rip), %rsi      # 0x1f228
leaq 0x7fcd(%rip), %rcx      # 0x1f237
pushq $0x32
jmp 0x17285
leaq 0x82fa(%rip), %rdi      # 0x1f56f
leaq 0x7fac(%rip), %rsi      # 0x1f228
leaq 0x7fb4(%rip), %rcx      # 0x1f237
pushq $0x33
popq %rdx
callq 0x30d0