Skip to content

Instantly share code, notes, and snippets.

@mratsim
Created March 25, 2018 10:04
Show Gist options
  • Save mratsim/f4e0a14deb8aceebc4aaeeccafffc37b to your computer and use it in GitHub Desktop.
Save mratsim/f4e0a14deb8aceebc4aaeeccafffc37b to your computer and use it in GitHub Desktop.
type
MpUint64 = object
lo, hi: uint32
# proc toMpUint64(u: uint64): MpUint64 {.noSideEffect, inline.}=
# cast[MpUint64](u)
# proc asMpUint64(u: uint64): MpUint64 {.noSideEffect, inline.}=
# (cast[ptr MpUint64](unsafeAddr u))[]
# template toMpUint64(u: uint64): MpUint64 =
# cast[MpUint64](u)
template asMpUint64(u: uint64): MpUint64 =
(cast[ptr MpUint64](unsafeAddr u))[]
proc `+=`(x: var MpUint64, y: MpUint64) {.noSideEffect, inline.}=
## In-place addition for multi-precision unsigned int
type SubTy = type x.lo
let tmp = x.lo
x.lo += y.lo
x.hi += SubTy(x.lo < tmp) + y.hi
proc `+`(x, y: MpUint64): MpUint64 {.noSideEffect, inline.}=
## Addition for multi-precision unsigned int
result = x
result += y
var a = 130'u64
let b = 70'u64
var u = a.asMpUint64
let v = b.asMpUint64
echo "repr a: " & $repr a
echo "repr b: " & $repr b
echo "repr u: " & $repr u
echo "repr v: " & $repr v
a += b
echo "a: " & $a
u += v
u += v
echo "u: " & $u
echo "a: " & $a
let z = a.asMpUint64 + b.asMpUint64
echo "z: " & $z
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 13
.globl _PreMainInner
.p2align 4, 0x90
_PreMainInner: ## @PreMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi0:
.cfi_def_cfa_offset 16
Lcfi1:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi2:
.cfi_def_cfa_register %rbp
callq _systemInit000
popq %rbp
jmp _castingDatInit000 ## TAILCALL
.cfi_endproc
.globl _castingDatInit000
.p2align 4, 0x90
_castingDatInit000: ## @castingDatInit000
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi3:
.cfi_def_cfa_offset 16
Lcfi4:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi5:
.cfi_def_cfa_register %rbp
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %rax
movq $8, (%rax)
movb $18, 8(%rax)
movq $0, 16(%rax)
movb $3, 9(%rax)
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip), %rcx
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip), %rdx
movq $0, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+56(%rip)
movq _NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_@GOTPCREL(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+64(%rip)
leaq L_.str(%rip), %rdi
movq %rdi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+72(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip), %rdi
movd %rdi, %xmm0
movd %rdx, %xmm1
punpcklqdq %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[0]
movdqa %xmm1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip), %rdx
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip)
movq $4, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+104(%rip)
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+112(%rip)
leaq L_.str.1(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+120(%rip)
movq $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+32(%rip)
movb $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip)
movq %rdx, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+40(%rip)
movq %rcx, 24(%rax)
popq %rbp
retq
.cfi_endproc
.globl _PreMain
.p2align 4, 0x90
_PreMain: ## @PreMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi6:
.cfi_def_cfa_offset 16
Lcfi7:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi8:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _NimMainInner
.p2align 4, 0x90
_NimMainInner: ## @NimMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi9:
.cfi_def_cfa_offset 16
Lcfi10:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi11:
.cfi_def_cfa_register %rbp
popq %rbp
jmp _NimMainModule ## TAILCALL
.cfi_endproc
.globl _NimMainModule
.p2align 4, 0x90
_NimMainModule: ## @NimMainModule
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi12:
.cfi_def_cfa_offset 16
Lcfi13:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi14:
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $72, %rsp
Lcfi15:
.cfi_offset %rbx, -56
Lcfi16:
.cfi_offset %r12, -48
Lcfi17:
.cfi_offset %r13, -40
Lcfi18:
.cfi_offset %r14, -32
Lcfi19:
.cfi_offset %r15, -24
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, -48(%rbp)
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %rax
movq $130, (%rax)
movq %rax, %r13
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rax
movq $70, (%rax)
movq %rax, %r14
movq _u_9aqSNiyBQ54SUtVd1SWMxFw@GOTPCREL(%rip), %r15
movq $130, (%r15)
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq $70, (%rax)
movl $130, %edi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_2+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_2+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r13), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -56(%rbp)
leaq -56(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r14), %rdi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_3+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_3+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r14), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -64(%rbp)
leaq -64(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %r12
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r13
movb _TM_mc66S0UpXc1RnC42wxxixg_4+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_4+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r14
addq (%rbx), %r13
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
movq %r13, %rdi
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -72(%rbp)
leaq -72(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %r13
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r14
movb _TM_mc66S0UpXc1RnC42wxxixg_6+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_6+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r12
addq (%rbx), %r14
leaq 16(%r12), %rsi
movq (%r12), %rdx
incq %rdx
movq %r14, %rdi
callq _memcpy
movq (%r12), %rax
addq %rax, (%rbx)
movq %rbx, -80(%rbp)
leaq -80(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %r12
movq (%r12), %rdi
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
addq (%rcx), %rdi
movq %rdi, (%r12)
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_7+16(%rip), %r13d
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -88(%rbp)
leaq -88(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, %rcx
shrq $32, %rcx
movl 4(%r15), %edx
addl %ecx, %edx
movl (%r15), %esi
addl %eax, %esi
adcl $0, %edx
addl %ecx, %edx
addl %eax, %esi
movl %esi, (%r15)
adcl $0, %edx
movl %edx, 4(%r15)
movq (%r15), %rdi
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_8+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -96(%rbp)
leaq -96(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rdi
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -104(%rbp)
leaq -104(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rax
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
movq (%rcx), %rdi
movq %rax, %rcx
shrq $32, %rcx
movq %rdi, %rdx
shrq $32, %rdx
addl %ecx, %edx
addl %eax, %edi
adcl $0, %edx
shlq $32, %rdx
orq %rdx, %rdi
movq _z_oWO6bKm9cQN5vzaNVm75thg@GOTPCREL(%rip), %rax
movq %rdi, (%rax)
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_9+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -112(%rbp)
leaq -112(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
cmpq -48(%rbp), %rax
jne LBB4_2
## BB#1:
addq $72, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
LBB4_2:
callq ___stack_chk_fail
.cfi_endproc
.globl _NimMain
.p2align 4, 0x90
_NimMain: ## @NimMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi20:
.cfi_def_cfa_offset 16
Lcfi21:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi22:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _main
.p2align 4, 0x90
_main: ## @main
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi23:
.cfi_def_cfa_offset 16
Lcfi24:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi25:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq _cmdLine@GOTPCREL(%rip), %rax
movq %rsi, (%rax)
movq _cmdCount@GOTPCREL(%rip), %rax
movl %edi, (%rax)
movq _gEnv@GOTPCREL(%rip), %rax
movq %rdx, (%rax)
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
movq _nim_program_result@GOTPCREL(%rip), %rax
movl (%rax), %eax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.comm _cmdLine,8,3 ## @cmdLine
.comm _cmdCount,4,2 ## @cmdCount
.comm _gEnv,8,3 ## @gEnv
.comm _a_Ojk3MtaiEdd0iInA5MIy0g,8,3 ## @a_Ojk3MtaiEdd0iInA5MIy0g
.comm _b_p7vty3yoVn07w5RO1K5DnA,8,3 ## @b_p7vty3yoVn07w5RO1K5DnA
.comm _u_9aqSNiyBQ54SUtVd1SWMxFw,8,2 ## @u_9aqSNiyBQ54SUtVd1SWMxFw
.comm _v_4wUc4npAT79av0deXGZsH2Q,8,2 ## @v_4wUc4npAT79av0deXGZsH2Q
.section __TEXT,__const
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_2
_TM_mc66S0UpXc1RnC42wxxixg_2:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr a: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_3
_TM_mc66S0UpXc1RnC42wxxixg_3:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr b: "
.space 7
.comm _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_,56,3 ## @NTI_76Dnuy9cjGJPiS89cd9adV5Ew_
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_4
_TM_mc66S0UpXc1RnC42wxxixg_4:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr u: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_6
_TM_mc66S0UpXc1RnC42wxxixg_6:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr v: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_7
_TM_mc66S0UpXc1RnC42wxxixg_7:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "a: "
.space 4
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_8
_TM_mc66S0UpXc1RnC42wxxixg_8:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "u: "
.space 4
.comm _z_oWO6bKm9cQN5vzaNVm75thg,8,2 ## @z_oWO6bKm9cQN5vzaNVm75thg
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_9
_TM_mc66S0UpXc1RnC42wxxixg_9:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "z: "
.space 4
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5,16,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0,144,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0
.section __TEXT,__cstring,cstring_literals
L_.str: ## @.str
.asciz "lo"
L_.str.1: ## @.str.1
.asciz "hi"
.subsections_via_symbols
/* Generated by Nim Compiler v0.18.1 */
/* (c) 2018 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: MacOSX, amd64, clang */
/* Command for C compiler:
clang -c -w -O3 -I'/Users/<USERNAME>/.choosenim/toolchains/nim-#devel/lib' -o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.c */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef powerpc
#undef unix
typedef struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew {
NU32 lo;
NU32 hi;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray_nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, asMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting)(NU64 u);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, reprInt)(NI64 x);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_NIMCALL(NimStringDesc*, reprAny)(void* p, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__rzAI8EMyNBAQwGODeohhAA)(NU64 x);
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__zJFdLqjHHiH2OH7BeaZ3ww)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x);
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, setStackBottom)(void* theStackBottom);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void);
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void);
NU64 a_Ojk3MtaiEdd0iInA5MIy0g;
NU64 b_p7vty3yoVn07w5RO1K5DnA;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew u_9aqSNiyBQ54SUtVd1SWMxFw;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew v_4wUc4npAT79av0deXGZsH2Q;
TNimType NTI_76Dnuy9cjGJPiS89cd9adV5Ew_;
extern TNimType NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew z_oWO6bKm9cQN5vzaNVm75thg;
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_2, "repr a: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_3, "repr b: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_4, "repr u: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_6, "repr v: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_7, "a: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_8, "u: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_9, "z: ", 3);
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, asMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting)(NU64 u) {
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew result;
memset((void*)(&result), 0, sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew));
result = (*((tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew*) ((&u))));
return result;
}
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
copyMem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
(*dest).Sup.len += (*src).Sup.len;
}
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
NU32 tmp;
tmp = (*x).lo;
(*x).lo += y.lo;
(*x).hi += (NU32)((NU32)(((NU32) (((NU32)((*x).lo) < (NU32)(tmp))))) + (NU32)(y.hi));
}
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew result;
memset((void*)(&result), 0, sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew));
result = x;
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&result), y);
return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
setStackBottom(locals);
}
void PreMainInner(void) {
systemInit000();
castingDatInit000();
}
void PreMain(void) {
void (*volatile inner)(void);
systemDatInit000();
inner = PreMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int cmdCount;
char** cmdLine;
char** gEnv;
N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void) {
tyArray_nHXaesL0DJZHyVS07ARPRA T1_;
NimStringDesc* T2_;
tyArray_nHXaesL0DJZHyVS07ARPRA T3_;
NimStringDesc* T4_;
tyArray_nHXaesL0DJZHyVS07ARPRA T5_;
NimStringDesc* T6_;
tyArray_nHXaesL0DJZHyVS07ARPRA T7_;
NimStringDesc* T8_;
tyArray_nHXaesL0DJZHyVS07ARPRA T9_;
NimStringDesc* T10_;
NimStringDesc* T11_;
tyArray_nHXaesL0DJZHyVS07ARPRA T12_;
NimStringDesc* T13_;
NimStringDesc* T14_;
tyArray_nHXaesL0DJZHyVS07ARPRA T15_;
NimStringDesc* T16_;
NimStringDesc* T17_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew T18_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew T19_;
tyArray_nHXaesL0DJZHyVS07ARPRA T20_;
NimStringDesc* T21_;
NimStringDesc* T22_;
a_Ojk3MtaiEdd0iInA5MIy0g = 130ULL;
b_p7vty3yoVn07w5RO1K5DnA = 70ULL;
u_9aqSNiyBQ54SUtVd1SWMxFw = asMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(a_Ojk3MtaiEdd0iInA5MIy0g);
v_4wUc4npAT79av0deXGZsH2Q = asMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(b_p7vty3yoVn07w5RO1K5DnA);
memset((void*)T1_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T2_ = (NimStringDesc*)0;
T2_ = rawNewString(reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g)->Sup.len + 8);
appendString(T2_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_2));
appendString(T2_, reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g));
T1_[0] = T2_;
echoBinSafe(T1_, 1);
memset((void*)T3_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T4_ = (NimStringDesc*)0;
T4_ = rawNewString(reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA)->Sup.len + 8);
appendString(T4_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_3));
appendString(T4_, reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA));
T3_[0] = T4_;
echoBinSafe(T3_, 1);
memset((void*)T5_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T6_ = (NimStringDesc*)0;
T6_ = rawNewString(reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T6_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_4));
appendString(T6_, reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T5_[0] = T6_;
echoBinSafe(T5_, 1);
memset((void*)T7_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T8_ = (NimStringDesc*)0;
T8_ = rawNewString(reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T8_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_6));
appendString(T8_, reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T7_[0] = T8_;
echoBinSafe(T7_, 1);
a_Ojk3MtaiEdd0iInA5MIy0g += b_p7vty3yoVn07w5RO1K5DnA;
memset((void*)T9_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T10_ = (NimStringDesc*)0;
T11_ = (NimStringDesc*)0;
T11_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T10_ = rawNewString(T11_->Sup.len + 3);
appendString(T10_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T10_, T11_);
T9_[0] = T10_;
echoBinSafe(T9_, 1);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
memset((void*)T12_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T13_ = (NimStringDesc*)0;
T14_ = (NimStringDesc*)0;
T14_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(u_9aqSNiyBQ54SUtVd1SWMxFw);
T13_ = rawNewString(T14_->Sup.len + 3);
appendString(T13_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_8));
appendString(T13_, T14_);
T12_[0] = T13_;
echoBinSafe(T12_, 1);
memset((void*)T15_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T16_ = (NimStringDesc*)0;
T17_ = (NimStringDesc*)0;
T17_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T16_ = rawNewString(T17_->Sup.len + 3);
appendString(T16_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T16_, T17_);
T15_[0] = T16_;
echoBinSafe(T15_, 1);
T18_ = asMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(a_Ojk3MtaiEdd0iInA5MIy0g);
T19_ = asMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(b_p7vty3yoVn07w5RO1K5DnA);
z_oWO6bKm9cQN5vzaNVm75thg = plus__jftI7N8NJ1VnVGCFw3gOJgcasting(T18_, T19_);
memset((void*)T20_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T21_ = (NimStringDesc*)0;
T22_ = (NimStringDesc*)0;
T22_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(z_oWO6bKm9cQN5vzaNVm75thg);
T21_ = rawNewString(T22_->Sup.len + 3);
appendString(T21_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_9));
appendString(T21_, T22_);
T20_[0] = T21_;
echoBinSafe(T20_, 1);
}
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void) {
static TNimNode* TM_mc66S0UpXc1RnC42wxxixg_5[2];
static TNimNode TM_mc66S0UpXc1RnC42wxxixg_0[3];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.size = sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew);
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.kind = 18;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.base = 0;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.flags = 3;
TM_mc66S0UpXc1RnC42wxxixg_5[0] = &TM_mc66S0UpXc1RnC42wxxixg_0[1];
TM_mc66S0UpXc1RnC42wxxixg_0[1].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[1].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, lo);
TM_mc66S0UpXc1RnC42wxxixg_0[1].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[1].name = "lo";
TM_mc66S0UpXc1RnC42wxxixg_5[1] = &TM_mc66S0UpXc1RnC42wxxixg_0[2];
TM_mc66S0UpXc1RnC42wxxixg_0[2].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[2].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, hi);
TM_mc66S0UpXc1RnC42wxxixg_0[2].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[2].name = "hi";
TM_mc66S0UpXc1RnC42wxxixg_0[0].len = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].kind = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].sons = &TM_mc66S0UpXc1RnC42wxxixg_5[0];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.node = &TM_mc66S0UpXc1RnC42wxxixg_0[0];
}
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 13
.globl _PreMainInner
.p2align 4, 0x90
_PreMainInner: ## @PreMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi0:
.cfi_def_cfa_offset 16
Lcfi1:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi2:
.cfi_def_cfa_register %rbp
callq _systemInit000
popq %rbp
jmp _castingDatInit000 ## TAILCALL
.cfi_endproc
.globl _castingDatInit000
.p2align 4, 0x90
_castingDatInit000: ## @castingDatInit000
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi3:
.cfi_def_cfa_offset 16
Lcfi4:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi5:
.cfi_def_cfa_register %rbp
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %rax
movq $8, (%rax)
movb $18, 8(%rax)
movq $0, 16(%rax)
movb $3, 9(%rax)
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip), %rcx
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip), %rdx
movq $0, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+56(%rip)
movq _NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_@GOTPCREL(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+64(%rip)
leaq L_.str(%rip), %rdi
movq %rdi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+72(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip), %rdi
movd %rdi, %xmm0
movd %rdx, %xmm1
punpcklqdq %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[0]
movdqa %xmm1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip), %rdx
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip)
movq $4, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+104(%rip)
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+112(%rip)
leaq L_.str.1(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+120(%rip)
movq $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+32(%rip)
movb $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip)
movq %rdx, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+40(%rip)
movq %rcx, 24(%rax)
popq %rbp
retq
.cfi_endproc
.globl _PreMain
.p2align 4, 0x90
_PreMain: ## @PreMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi6:
.cfi_def_cfa_offset 16
Lcfi7:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi8:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _NimMainInner
.p2align 4, 0x90
_NimMainInner: ## @NimMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi9:
.cfi_def_cfa_offset 16
Lcfi10:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi11:
.cfi_def_cfa_register %rbp
popq %rbp
jmp _NimMainModule ## TAILCALL
.cfi_endproc
.globl _NimMainModule
.p2align 4, 0x90
_NimMainModule: ## @NimMainModule
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi12:
.cfi_def_cfa_offset 16
Lcfi13:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi14:
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $72, %rsp
Lcfi15:
.cfi_offset %rbx, -56
Lcfi16:
.cfi_offset %r12, -48
Lcfi17:
.cfi_offset %r13, -40
Lcfi18:
.cfi_offset %r14, -32
Lcfi19:
.cfi_offset %r15, -24
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, -48(%rbp)
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %rax
movq $130, (%rax)
movq %rax, %r13
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rax
movq $70, (%rax)
movq %rax, %r14
movq _u_9aqSNiyBQ54SUtVd1SWMxFw@GOTPCREL(%rip), %r15
movq $130, (%r15)
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq $70, (%rax)
movl $130, %edi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_2+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_2+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r13), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -56(%rbp)
leaq -56(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r14), %rdi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_3+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_3+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r14), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -64(%rbp)
leaq -64(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %r12
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r13
movb _TM_mc66S0UpXc1RnC42wxxixg_4+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_4+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r14
addq (%rbx), %r13
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
movq %r13, %rdi
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -72(%rbp)
leaq -72(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %r13
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r14
movb _TM_mc66S0UpXc1RnC42wxxixg_6+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_6+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r12
addq (%rbx), %r14
leaq 16(%r12), %rsi
movq (%r12), %rdx
incq %rdx
movq %r14, %rdi
callq _memcpy
movq (%r12), %rax
addq %rax, (%rbx)
movq %rbx, -80(%rbp)
leaq -80(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %r12
movq (%r12), %rdi
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
addq (%rcx), %rdi
movq %rdi, (%r12)
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_7+16(%rip), %r13d
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -88(%rbp)
leaq -88(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, %rcx
shrq $32, %rcx
movl 4(%r15), %edx
addl %ecx, %edx
movl (%r15), %esi
addl %eax, %esi
adcl $0, %edx
addl %ecx, %edx
addl %eax, %esi
movl %esi, (%r15)
adcl $0, %edx
movl %edx, 4(%r15)
movq (%r15), %rdi
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_8+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -96(%rbp)
leaq -96(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rdi
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -104(%rbp)
leaq -104(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rax
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
movq (%rcx), %rdi
movq %rax, %rcx
shrq $32, %rcx
movq %rdi, %rdx
shrq $32, %rdx
addl %ecx, %edx
addl %eax, %edi
adcl $0, %edx
shlq $32, %rdx
orq %rdx, %rdi
movq _z_oWO6bKm9cQN5vzaNVm75thg@GOTPCREL(%rip), %rax
movq %rdi, (%rax)
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_9+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -112(%rbp)
leaq -112(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
cmpq -48(%rbp), %rax
jne LBB4_2
## BB#1:
addq $72, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
LBB4_2:
callq ___stack_chk_fail
.cfi_endproc
.globl _NimMain
.p2align 4, 0x90
_NimMain: ## @NimMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi20:
.cfi_def_cfa_offset 16
Lcfi21:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi22:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _main
.p2align 4, 0x90
_main: ## @main
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi23:
.cfi_def_cfa_offset 16
Lcfi24:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi25:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq _cmdLine@GOTPCREL(%rip), %rax
movq %rsi, (%rax)
movq _cmdCount@GOTPCREL(%rip), %rax
movl %edi, (%rax)
movq _gEnv@GOTPCREL(%rip), %rax
movq %rdx, (%rax)
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
movq _nim_program_result@GOTPCREL(%rip), %rax
movl (%rax), %eax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.comm _cmdLine,8,3 ## @cmdLine
.comm _cmdCount,4,2 ## @cmdCount
.comm _gEnv,8,3 ## @gEnv
.comm _a_Ojk3MtaiEdd0iInA5MIy0g,8,3 ## @a_Ojk3MtaiEdd0iInA5MIy0g
.comm _b_p7vty3yoVn07w5RO1K5DnA,8,3 ## @b_p7vty3yoVn07w5RO1K5DnA
.comm _u_9aqSNiyBQ54SUtVd1SWMxFw,8,2 ## @u_9aqSNiyBQ54SUtVd1SWMxFw
.comm _v_4wUc4npAT79av0deXGZsH2Q,8,2 ## @v_4wUc4npAT79av0deXGZsH2Q
.section __TEXT,__const
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_2
_TM_mc66S0UpXc1RnC42wxxixg_2:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr a: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_3
_TM_mc66S0UpXc1RnC42wxxixg_3:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr b: "
.space 7
.comm _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_,56,3 ## @NTI_76Dnuy9cjGJPiS89cd9adV5Ew_
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_4
_TM_mc66S0UpXc1RnC42wxxixg_4:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr u: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_6
_TM_mc66S0UpXc1RnC42wxxixg_6:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr v: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_7
_TM_mc66S0UpXc1RnC42wxxixg_7:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "a: "
.space 4
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_8
_TM_mc66S0UpXc1RnC42wxxixg_8:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "u: "
.space 4
.comm _z_oWO6bKm9cQN5vzaNVm75thg,8,2 ## @z_oWO6bKm9cQN5vzaNVm75thg
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_9
_TM_mc66S0UpXc1RnC42wxxixg_9:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "z: "
.space 4
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5,16,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0,144,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0
.section __TEXT,__cstring,cstring_literals
L_.str: ## @.str
.asciz "lo"
L_.str.1: ## @.str.1
.asciz "hi"
.subsections_via_symbols
/* Generated by Nim Compiler v0.18.1 */
/* (c) 2018 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: MacOSX, amd64, clang */
/* Command for C compiler:
clang -c -w -O3 -I'/Users/<USERNAME>/.choosenim/toolchains/nim-#devel/lib' -o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.c */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef powerpc
#undef unix
typedef struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew {
NU32 lo;
NU32 hi;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray_nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, toMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting)(NU64 u);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, reprInt)(NI64 x);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_NIMCALL(NimStringDesc*, reprAny)(void* p, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__rzAI8EMyNBAQwGODeohhAA)(NU64 x);
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__zJFdLqjHHiH2OH7BeaZ3ww)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x);
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, setStackBottom)(void* theStackBottom);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void);
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void);
NU64 a_Ojk3MtaiEdd0iInA5MIy0g;
NU64 b_p7vty3yoVn07w5RO1K5DnA;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew u_9aqSNiyBQ54SUtVd1SWMxFw;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew v_4wUc4npAT79av0deXGZsH2Q;
TNimType NTI_76Dnuy9cjGJPiS89cd9adV5Ew_;
extern TNimType NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew z_oWO6bKm9cQN5vzaNVm75thg;
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_2, "repr a: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_3, "repr b: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_4, "repr u: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_6, "repr v: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_7, "a: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_8, "u: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_9, "z: ", 3);
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, toMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting)(NU64 u) {
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew result;
union { NU64 source; tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew dest; } LOC1;
memset((void*)(&result), 0, sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew));
LOC1.source = u;
result = LOC1.dest;
return result;
}
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
copyMem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
(*dest).Sup.len += (*src).Sup.len;
}
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
NU32 tmp;
tmp = (*x).lo;
(*x).lo += y.lo;
(*x).hi += (NU32)((NU32)(((NU32) (((NU32)((*x).lo) < (NU32)(tmp))))) + (NU32)(y.hi));
}
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew result;
memset((void*)(&result), 0, sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew));
result = x;
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&result), y);
return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
setStackBottom(locals);
}
void PreMainInner(void) {
systemInit000();
castingDatInit000();
}
void PreMain(void) {
void (*volatile inner)(void);
systemDatInit000();
inner = PreMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int cmdCount;
char** cmdLine;
char** gEnv;
N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void) {
tyArray_nHXaesL0DJZHyVS07ARPRA T1_;
NimStringDesc* T2_;
tyArray_nHXaesL0DJZHyVS07ARPRA T3_;
NimStringDesc* T4_;
tyArray_nHXaesL0DJZHyVS07ARPRA T5_;
NimStringDesc* T6_;
tyArray_nHXaesL0DJZHyVS07ARPRA T7_;
NimStringDesc* T8_;
tyArray_nHXaesL0DJZHyVS07ARPRA T9_;
NimStringDesc* T10_;
NimStringDesc* T11_;
tyArray_nHXaesL0DJZHyVS07ARPRA T12_;
NimStringDesc* T13_;
NimStringDesc* T14_;
tyArray_nHXaesL0DJZHyVS07ARPRA T15_;
NimStringDesc* T16_;
NimStringDesc* T17_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew T18_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew T19_;
tyArray_nHXaesL0DJZHyVS07ARPRA T20_;
NimStringDesc* T21_;
NimStringDesc* T22_;
a_Ojk3MtaiEdd0iInA5MIy0g = 130ULL;
b_p7vty3yoVn07w5RO1K5DnA = 70ULL;
u_9aqSNiyBQ54SUtVd1SWMxFw = toMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(a_Ojk3MtaiEdd0iInA5MIy0g);
v_4wUc4npAT79av0deXGZsH2Q = toMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(b_p7vty3yoVn07w5RO1K5DnA);
memset((void*)T1_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T2_ = (NimStringDesc*)0;
T2_ = rawNewString(reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g)->Sup.len + 8);
appendString(T2_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_2));
appendString(T2_, reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g));
T1_[0] = T2_;
echoBinSafe(T1_, 1);
memset((void*)T3_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T4_ = (NimStringDesc*)0;
T4_ = rawNewString(reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA)->Sup.len + 8);
appendString(T4_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_3));
appendString(T4_, reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA));
T3_[0] = T4_;
echoBinSafe(T3_, 1);
memset((void*)T5_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T6_ = (NimStringDesc*)0;
T6_ = rawNewString(reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T6_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_4));
appendString(T6_, reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T5_[0] = T6_;
echoBinSafe(T5_, 1);
memset((void*)T7_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T8_ = (NimStringDesc*)0;
T8_ = rawNewString(reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T8_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_6));
appendString(T8_, reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T7_[0] = T8_;
echoBinSafe(T7_, 1);
a_Ojk3MtaiEdd0iInA5MIy0g += b_p7vty3yoVn07w5RO1K5DnA;
memset((void*)T9_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T10_ = (NimStringDesc*)0;
T11_ = (NimStringDesc*)0;
T11_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T10_ = rawNewString(T11_->Sup.len + 3);
appendString(T10_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T10_, T11_);
T9_[0] = T10_;
echoBinSafe(T9_, 1);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
memset((void*)T12_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T13_ = (NimStringDesc*)0;
T14_ = (NimStringDesc*)0;
T14_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(u_9aqSNiyBQ54SUtVd1SWMxFw);
T13_ = rawNewString(T14_->Sup.len + 3);
appendString(T13_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_8));
appendString(T13_, T14_);
T12_[0] = T13_;
echoBinSafe(T12_, 1);
memset((void*)T15_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T16_ = (NimStringDesc*)0;
T17_ = (NimStringDesc*)0;
T17_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T16_ = rawNewString(T17_->Sup.len + 3);
appendString(T16_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T16_, T17_);
T15_[0] = T16_;
echoBinSafe(T15_, 1);
T18_ = toMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(a_Ojk3MtaiEdd0iInA5MIy0g);
T19_ = toMpUint64_inr3m8ZjTNjlaTUX5utkQAcasting(b_p7vty3yoVn07w5RO1K5DnA);
z_oWO6bKm9cQN5vzaNVm75thg = plus__jftI7N8NJ1VnVGCFw3gOJgcasting(T18_, T19_);
memset((void*)T20_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T21_ = (NimStringDesc*)0;
T22_ = (NimStringDesc*)0;
T22_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(z_oWO6bKm9cQN5vzaNVm75thg);
T21_ = rawNewString(T22_->Sup.len + 3);
appendString(T21_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_9));
appendString(T21_, T22_);
T20_[0] = T21_;
echoBinSafe(T20_, 1);
}
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void) {
static TNimNode* TM_mc66S0UpXc1RnC42wxxixg_5[2];
static TNimNode TM_mc66S0UpXc1RnC42wxxixg_0[3];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.size = sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew);
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.kind = 18;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.base = 0;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.flags = 3;
TM_mc66S0UpXc1RnC42wxxixg_5[0] = &TM_mc66S0UpXc1RnC42wxxixg_0[1];
TM_mc66S0UpXc1RnC42wxxixg_0[1].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[1].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, lo);
TM_mc66S0UpXc1RnC42wxxixg_0[1].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[1].name = "lo";
TM_mc66S0UpXc1RnC42wxxixg_5[1] = &TM_mc66S0UpXc1RnC42wxxixg_0[2];
TM_mc66S0UpXc1RnC42wxxixg_0[2].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[2].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, hi);
TM_mc66S0UpXc1RnC42wxxixg_0[2].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[2].name = "hi";
TM_mc66S0UpXc1RnC42wxxixg_0[0].len = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].kind = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].sons = &TM_mc66S0UpXc1RnC42wxxixg_5[0];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.node = &TM_mc66S0UpXc1RnC42wxxixg_0[0];
}
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 13
.globl _PreMainInner
.p2align 4, 0x90
_PreMainInner: ## @PreMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi0:
.cfi_def_cfa_offset 16
Lcfi1:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi2:
.cfi_def_cfa_register %rbp
callq _systemInit000
popq %rbp
jmp _castingDatInit000 ## TAILCALL
.cfi_endproc
.globl _castingDatInit000
.p2align 4, 0x90
_castingDatInit000: ## @castingDatInit000
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi3:
.cfi_def_cfa_offset 16
Lcfi4:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi5:
.cfi_def_cfa_register %rbp
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %rax
movq $8, (%rax)
movb $18, 8(%rax)
movq $0, 16(%rax)
movb $3, 9(%rax)
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip), %rcx
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip), %rdx
movq $0, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+56(%rip)
movq _NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_@GOTPCREL(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+64(%rip)
leaq L_.str(%rip), %rdi
movq %rdi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+72(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip), %rdi
movd %rdi, %xmm0
movd %rdx, %xmm1
punpcklqdq %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[0]
movdqa %xmm1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip), %rdx
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip)
movq $4, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+104(%rip)
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+112(%rip)
leaq L_.str.1(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+120(%rip)
movq $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+32(%rip)
movb $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip)
movq %rdx, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+40(%rip)
movq %rcx, 24(%rax)
popq %rbp
retq
.cfi_endproc
.globl _PreMain
.p2align 4, 0x90
_PreMain: ## @PreMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi6:
.cfi_def_cfa_offset 16
Lcfi7:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi8:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _NimMainInner
.p2align 4, 0x90
_NimMainInner: ## @NimMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi9:
.cfi_def_cfa_offset 16
Lcfi10:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi11:
.cfi_def_cfa_register %rbp
popq %rbp
jmp _NimMainModule ## TAILCALL
.cfi_endproc
.globl _NimMainModule
.p2align 4, 0x90
_NimMainModule: ## @NimMainModule
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi12:
.cfi_def_cfa_offset 16
Lcfi13:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi14:
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $72, %rsp
Lcfi15:
.cfi_offset %rbx, -56
Lcfi16:
.cfi_offset %r12, -48
Lcfi17:
.cfi_offset %r13, -40
Lcfi18:
.cfi_offset %r14, -32
Lcfi19:
.cfi_offset %r15, -24
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, -48(%rbp)
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %rax
movq $130, (%rax)
movq %rax, %r13
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rax
movq $70, (%rax)
movq %rax, %r14
movq _u_9aqSNiyBQ54SUtVd1SWMxFw@GOTPCREL(%rip), %r15
movq $130, (%r15)
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq $70, (%rax)
movl $130, %edi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_2+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_2+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r13), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -56(%rbp)
leaq -56(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r14), %rdi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_3+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_3+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r14), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -64(%rbp)
leaq -64(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %r12
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r13
movb _TM_mc66S0UpXc1RnC42wxxixg_4+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_4+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r14
addq (%rbx), %r13
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
movq %r13, %rdi
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -72(%rbp)
leaq -72(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %r13
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r14
movb _TM_mc66S0UpXc1RnC42wxxixg_6+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_6+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r12
addq (%rbx), %r14
leaq 16(%r12), %rsi
movq (%r12), %rdx
incq %rdx
movq %r14, %rdi
callq _memcpy
movq (%r12), %rax
addq %rax, (%rbx)
movq %rbx, -80(%rbp)
leaq -80(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %r12
movq (%r12), %rdi
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
addq (%rcx), %rdi
movq %rdi, (%r12)
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_7+16(%rip), %r13d
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -88(%rbp)
leaq -88(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, %rcx
shrq $32, %rcx
movl 4(%r15), %edx
addl %ecx, %edx
movl (%r15), %esi
addl %eax, %esi
adcl $0, %edx
addl %ecx, %edx
addl %eax, %esi
movl %esi, (%r15)
adcl $0, %edx
movl %edx, 4(%r15)
movq (%r15), %rdi
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_8+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -96(%rbp)
leaq -96(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rdi
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -104(%rbp)
leaq -104(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rax
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
movq (%rcx), %rdi
movq %rax, %rcx
shrq $32, %rcx
movq %rdi, %rdx
shrq $32, %rdx
addl %ecx, %edx
addl %eax, %edi
adcl $0, %edx
shlq $32, %rdx
orq %rdx, %rdi
movq _z_oWO6bKm9cQN5vzaNVm75thg@GOTPCREL(%rip), %rax
movq %rdi, (%rax)
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_9+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -112(%rbp)
leaq -112(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
cmpq -48(%rbp), %rax
jne LBB4_2
## BB#1:
addq $72, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
LBB4_2:
callq ___stack_chk_fail
.cfi_endproc
.globl _NimMain
.p2align 4, 0x90
_NimMain: ## @NimMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi20:
.cfi_def_cfa_offset 16
Lcfi21:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi22:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _main
.p2align 4, 0x90
_main: ## @main
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi23:
.cfi_def_cfa_offset 16
Lcfi24:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi25:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq _cmdLine@GOTPCREL(%rip), %rax
movq %rsi, (%rax)
movq _cmdCount@GOTPCREL(%rip), %rax
movl %edi, (%rax)
movq _gEnv@GOTPCREL(%rip), %rax
movq %rdx, (%rax)
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
movq _nim_program_result@GOTPCREL(%rip), %rax
movl (%rax), %eax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.comm _cmdLine,8,3 ## @cmdLine
.comm _cmdCount,4,2 ## @cmdCount
.comm _gEnv,8,3 ## @gEnv
.comm _a_Ojk3MtaiEdd0iInA5MIy0g,8,3 ## @a_Ojk3MtaiEdd0iInA5MIy0g
.comm _b_p7vty3yoVn07w5RO1K5DnA,8,3 ## @b_p7vty3yoVn07w5RO1K5DnA
.comm _u_9aqSNiyBQ54SUtVd1SWMxFw,8,2 ## @u_9aqSNiyBQ54SUtVd1SWMxFw
.comm _v_4wUc4npAT79av0deXGZsH2Q,8,2 ## @v_4wUc4npAT79av0deXGZsH2Q
.section __TEXT,__const
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_2
_TM_mc66S0UpXc1RnC42wxxixg_2:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr a: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_3
_TM_mc66S0UpXc1RnC42wxxixg_3:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr b: "
.space 7
.comm _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_,56,3 ## @NTI_76Dnuy9cjGJPiS89cd9adV5Ew_
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_4
_TM_mc66S0UpXc1RnC42wxxixg_4:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr u: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_6
_TM_mc66S0UpXc1RnC42wxxixg_6:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr v: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_7
_TM_mc66S0UpXc1RnC42wxxixg_7:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "a: "
.space 4
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_8
_TM_mc66S0UpXc1RnC42wxxixg_8:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "u: "
.space 4
.comm _z_oWO6bKm9cQN5vzaNVm75thg,8,2 ## @z_oWO6bKm9cQN5vzaNVm75thg
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_9
_TM_mc66S0UpXc1RnC42wxxixg_9:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "z: "
.space 4
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5,16,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0,144,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0
.section __TEXT,__cstring,cstring_literals
L_.str: ## @.str
.asciz "lo"
L_.str.1: ## @.str.1
.asciz "hi"
.subsections_via_symbols
/* Generated by Nim Compiler v0.18.1 */
/* (c) 2018 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: MacOSX, amd64, clang */
/* Command for C compiler:
clang -c -w -O3 -I'/Users/<USERNAME>/.choosenim/toolchains/nim-#devel/lib' -o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.c */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef powerpc
#undef unix
typedef struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew {
NU32 lo;
NU32 hi;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray_nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, reprInt)(NI64 x);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_NIMCALL(NimStringDesc*, reprAny)(void* p, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__rzAI8EMyNBAQwGODeohhAA)(NU64 x);
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__zJFdLqjHHiH2OH7BeaZ3ww)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x);
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, setStackBottom)(void* theStackBottom);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void);
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void);
NU64 a_Ojk3MtaiEdd0iInA5MIy0g;
NU64 b_p7vty3yoVn07w5RO1K5DnA;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew u_9aqSNiyBQ54SUtVd1SWMxFw;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew v_4wUc4npAT79av0deXGZsH2Q;
TNimType NTI_76Dnuy9cjGJPiS89cd9adV5Ew_;
extern TNimType NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew z_oWO6bKm9cQN5vzaNVm75thg;
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_2, "repr a: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_3, "repr b: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_4, "repr u: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_6, "repr v: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_7, "a: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_8, "u: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_9, "z: ", 3);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
copyMem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
(*dest).Sup.len += (*src).Sup.len;
}
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
NU32 tmp;
tmp = (*x).lo;
(*x).lo += y.lo;
(*x).hi += (NU32)((NU32)(((NU32) (((NU32)((*x).lo) < (NU32)(tmp))))) + (NU32)(y.hi));
}
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew result;
memset((void*)(&result), 0, sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew));
result = x;
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&result), y);
return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
setStackBottom(locals);
}
void PreMainInner(void) {
systemInit000();
castingDatInit000();
}
void PreMain(void) {
void (*volatile inner)(void);
systemDatInit000();
inner = PreMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int cmdCount;
char** cmdLine;
char** gEnv;
N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void) {
union { NU64 source; tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew dest; } LOC1;
union { NU64 source; tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew dest; } LOC2;
tyArray_nHXaesL0DJZHyVS07ARPRA T3_;
NimStringDesc* T4_;
tyArray_nHXaesL0DJZHyVS07ARPRA T5_;
NimStringDesc* T6_;
tyArray_nHXaesL0DJZHyVS07ARPRA T7_;
NimStringDesc* T8_;
tyArray_nHXaesL0DJZHyVS07ARPRA T9_;
NimStringDesc* T10_;
tyArray_nHXaesL0DJZHyVS07ARPRA T11_;
NimStringDesc* T12_;
NimStringDesc* T13_;
tyArray_nHXaesL0DJZHyVS07ARPRA T14_;
NimStringDesc* T15_;
NimStringDesc* T16_;
tyArray_nHXaesL0DJZHyVS07ARPRA T17_;
NimStringDesc* T18_;
NimStringDesc* T19_;
union { NU64 source; tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew dest; } LOC20;
union { NU64 source; tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew dest; } LOC21;
tyArray_nHXaesL0DJZHyVS07ARPRA T22_;
NimStringDesc* T23_;
NimStringDesc* T24_;
a_Ojk3MtaiEdd0iInA5MIy0g = 130ULL;
b_p7vty3yoVn07w5RO1K5DnA = 70ULL;
LOC1.source = a_Ojk3MtaiEdd0iInA5MIy0g;
u_9aqSNiyBQ54SUtVd1SWMxFw = LOC1.dest;
LOC2.source = b_p7vty3yoVn07w5RO1K5DnA;
v_4wUc4npAT79av0deXGZsH2Q = LOC2.dest;
memset((void*)T3_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T4_ = (NimStringDesc*)0;
T4_ = rawNewString(reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g)->Sup.len + 8);
appendString(T4_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_2));
appendString(T4_, reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g));
T3_[0] = T4_;
echoBinSafe(T3_, 1);
memset((void*)T5_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T6_ = (NimStringDesc*)0;
T6_ = rawNewString(reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA)->Sup.len + 8);
appendString(T6_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_3));
appendString(T6_, reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA));
T5_[0] = T6_;
echoBinSafe(T5_, 1);
memset((void*)T7_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T8_ = (NimStringDesc*)0;
T8_ = rawNewString(reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T8_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_4));
appendString(T8_, reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T7_[0] = T8_;
echoBinSafe(T7_, 1);
memset((void*)T9_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T10_ = (NimStringDesc*)0;
T10_ = rawNewString(reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T10_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_6));
appendString(T10_, reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T9_[0] = T10_;
echoBinSafe(T9_, 1);
a_Ojk3MtaiEdd0iInA5MIy0g += b_p7vty3yoVn07w5RO1K5DnA;
memset((void*)T11_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T12_ = (NimStringDesc*)0;
T13_ = (NimStringDesc*)0;
T13_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T12_ = rawNewString(T13_->Sup.len + 3);
appendString(T12_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T12_, T13_);
T11_[0] = T12_;
echoBinSafe(T11_, 1);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
memset((void*)T14_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T15_ = (NimStringDesc*)0;
T16_ = (NimStringDesc*)0;
T16_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(u_9aqSNiyBQ54SUtVd1SWMxFw);
T15_ = rawNewString(T16_->Sup.len + 3);
appendString(T15_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_8));
appendString(T15_, T16_);
T14_[0] = T15_;
echoBinSafe(T14_, 1);
memset((void*)T17_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T18_ = (NimStringDesc*)0;
T19_ = (NimStringDesc*)0;
T19_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T18_ = rawNewString(T19_->Sup.len + 3);
appendString(T18_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T18_, T19_);
T17_[0] = T18_;
echoBinSafe(T17_, 1);
LOC20.source = a_Ojk3MtaiEdd0iInA5MIy0g;
LOC21.source = b_p7vty3yoVn07w5RO1K5DnA;
z_oWO6bKm9cQN5vzaNVm75thg = plus__jftI7N8NJ1VnVGCFw3gOJgcasting(LOC20.dest, LOC21.dest);
memset((void*)T22_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T23_ = (NimStringDesc*)0;
T24_ = (NimStringDesc*)0;
T24_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(z_oWO6bKm9cQN5vzaNVm75thg);
T23_ = rawNewString(T24_->Sup.len + 3);
appendString(T23_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_9));
appendString(T23_, T24_);
T22_[0] = T23_;
echoBinSafe(T22_, 1);
}
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void) {
static TNimNode* TM_mc66S0UpXc1RnC42wxxixg_5[2];
static TNimNode TM_mc66S0UpXc1RnC42wxxixg_0[3];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.size = sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew);
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.kind = 18;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.base = 0;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.flags = 3;
TM_mc66S0UpXc1RnC42wxxixg_5[0] = &TM_mc66S0UpXc1RnC42wxxixg_0[1];
TM_mc66S0UpXc1RnC42wxxixg_0[1].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[1].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, lo);
TM_mc66S0UpXc1RnC42wxxixg_0[1].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[1].name = "lo";
TM_mc66S0UpXc1RnC42wxxixg_5[1] = &TM_mc66S0UpXc1RnC42wxxixg_0[2];
TM_mc66S0UpXc1RnC42wxxixg_0[2].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[2].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, hi);
TM_mc66S0UpXc1RnC42wxxixg_0[2].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[2].name = "hi";
TM_mc66S0UpXc1RnC42wxxixg_0[0].len = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].kind = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].sons = &TM_mc66S0UpXc1RnC42wxxixg_5[0];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.node = &TM_mc66S0UpXc1RnC42wxxixg_0[0];
}
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 13
.globl _PreMainInner
.p2align 4, 0x90
_PreMainInner: ## @PreMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi0:
.cfi_def_cfa_offset 16
Lcfi1:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi2:
.cfi_def_cfa_register %rbp
callq _systemInit000
popq %rbp
jmp _castingDatInit000 ## TAILCALL
.cfi_endproc
.globl _castingDatInit000
.p2align 4, 0x90
_castingDatInit000: ## @castingDatInit000
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi3:
.cfi_def_cfa_offset 16
Lcfi4:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi5:
.cfi_def_cfa_register %rbp
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %rax
movq $8, (%rax)
movb $18, 8(%rax)
movq $0, 16(%rax)
movb $3, 9(%rax)
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip), %rcx
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+48(%rip), %rdx
movq $0, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+56(%rip)
movq _NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_@GOTPCREL(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+64(%rip)
leaq L_.str(%rip), %rdi
movq %rdi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+72(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip), %rdi
movd %rdi, %xmm0
movd %rdx, %xmm1
punpcklqdq %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[0]
movdqa %xmm1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip)
leaq _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5(%rip), %rdx
movb $1, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+96(%rip)
movq $4, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+104(%rip)
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+112(%rip)
leaq L_.str.1(%rip), %rsi
movq %rsi, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+120(%rip)
movq $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+32(%rip)
movb $2, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0(%rip)
movq %rdx, _castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0+40(%rip)
movq %rcx, 24(%rax)
popq %rbp
retq
.cfi_endproc
.globl _PreMain
.p2align 4, 0x90
_PreMain: ## @PreMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi6:
.cfi_def_cfa_offset 16
Lcfi7:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi8:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _NimMainInner
.p2align 4, 0x90
_NimMainInner: ## @NimMainInner
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi9:
.cfi_def_cfa_offset 16
Lcfi10:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi11:
.cfi_def_cfa_register %rbp
popq %rbp
jmp _NimMainModule ## TAILCALL
.cfi_endproc
.globl _NimMainModule
.p2align 4, 0x90
_NimMainModule: ## @NimMainModule
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi12:
.cfi_def_cfa_offset 16
Lcfi13:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi14:
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $72, %rsp
Lcfi15:
.cfi_offset %rbx, -56
Lcfi16:
.cfi_offset %r12, -48
Lcfi17:
.cfi_offset %r13, -40
Lcfi18:
.cfi_offset %r14, -32
Lcfi19:
.cfi_offset %r15, -24
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, -48(%rbp)
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %rax
movq $130, (%rax)
movq %rax, %r13
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rax
movq $70, (%rax)
movq %rax, %r14
movq _u_9aqSNiyBQ54SUtVd1SWMxFw@GOTPCREL(%rip), %r15
movq $130, (%r15)
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq $70, (%rax)
movl $130, %edi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_2+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_2+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r13), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -56(%rbp)
leaq -56(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r14), %rdi
callq _reprInt
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r12
movb _TM_mc66S0UpXc1RnC42wxxixg_3+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_3+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq (%r14), %rdi
callq _reprInt
movq %rax, %r13
addq (%rbx), %r12
leaq 16(%r13), %rsi
movq (%r13), %rdx
incq %rdx
movq %r12, %rdi
callq _memcpy
movq (%r13), %rax
addq %rax, (%rbx)
movq %rbx, -64(%rbp)
leaq -64(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_@GOTPCREL(%rip), %r12
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r13
movb _TM_mc66S0UpXc1RnC42wxxixg_4+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_4+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r15, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r14
addq (%rbx), %r13
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
movq %r13, %rdi
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -72(%rbp)
leaq -72(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %r13
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq (%rax), %rdi
addq $8, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
leaq 16(%rbx), %r14
movb _TM_mc66S0UpXc1RnC42wxxixg_6+24(%rip), %cl
movb %cl, 24(%rbx,%rax)
movq _TM_mc66S0UpXc1RnC42wxxixg_6+16(%rip), %rcx
movq %rcx, 16(%rbx,%rax)
addq $8, (%rbx)
movq %r13, %rdi
movq %r12, %rsi
callq _reprAny
movq %rax, %r12
addq (%rbx), %r14
leaq 16(%r12), %rsi
movq (%r12), %rdx
incq %rdx
movq %r14, %rdi
callq _memcpy
movq (%r12), %rax
addq %rax, (%rbx)
movq %rbx, -80(%rbp)
leaq -80(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _a_Ojk3MtaiEdd0iInA5MIy0g@GOTPCREL(%rip), %r12
movq (%r12), %rdi
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
addq (%rcx), %rdi
movq %rdi, (%r12)
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_7+16(%rip), %r13d
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -88(%rbp)
leaq -88(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq _v_4wUc4npAT79av0deXGZsH2Q@GOTPCREL(%rip), %rax
movq (%rax), %rax
movq %rax, %rcx
shrq $32, %rcx
movl 4(%r15), %edx
addl %ecx, %edx
movl (%r15), %esi
addl %eax, %esi
adcl $0, %edx
addl %ecx, %edx
addl %eax, %esi
movl %esi, (%r15)
adcl $0, %edx
movl %edx, 4(%r15)
movq (%r15), %rdi
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_8+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -96(%rbp)
leaq -96(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rdi
callq _dollar__rzAI8EMyNBAQwGODeohhAA
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl %r13d, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -104(%rbp)
leaq -104(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq (%r12), %rax
movq _b_p7vty3yoVn07w5RO1K5DnA@GOTPCREL(%rip), %rcx
movq (%rcx), %rdi
movq %rax, %rcx
shrq $32, %rcx
movq %rdi, %rdx
shrq $32, %rdx
addl %ecx, %edx
addl %eax, %edi
adcl $0, %edx
shlq $32, %rdx
orq %rdx, %rdi
movq _z_oWO6bKm9cQN5vzaNVm75thg@GOTPCREL(%rip), %rax
movq %rdi, (%rax)
callq _dollar__zJFdLqjHHiH2OH7BeaZ3ww
movq %rax, %r14
movq (%r14), %rdi
addq $3, %rdi
callq _rawNewString
movq %rax, %rbx
movq (%rbx), %rax
movl _TM_mc66S0UpXc1RnC42wxxixg_9+16(%rip), %ecx
movl %ecx, 16(%rbx,%rax)
movq (%rbx), %rax
leaq 3(%rax), %rcx
movq %rcx, (%rbx)
leaq 19(%rbx,%rax), %rdi
leaq 16(%r14), %rsi
movq (%r14), %rdx
incq %rdx
callq _memcpy
movq (%r14), %rax
addq %rax, (%rbx)
movq %rbx, -112(%rbp)
leaq -112(%rbp), %rdi
movl $1, %esi
callq _echoBinSafe
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rax
cmpq -48(%rbp), %rax
jne LBB4_2
## BB#1:
addq $72, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
LBB4_2:
callq ___stack_chk_fail
.cfi_endproc
.globl _NimMain
.p2align 4, 0x90
_NimMain: ## @NimMain
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi20:
.cfi_def_cfa_offset 16
Lcfi21:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi22:
.cfi_def_cfa_register %rbp
subq $16, %rsp
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.globl _main
.p2align 4, 0x90
_main: ## @main
.cfi_startproc
## BB#0:
pushq %rbp
Lcfi23:
.cfi_def_cfa_offset 16
Lcfi24:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Lcfi25:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq _cmdLine@GOTPCREL(%rip), %rax
movq %rsi, (%rax)
movq _cmdCount@GOTPCREL(%rip), %rax
movl %edi, (%rax)
movq _gEnv@GOTPCREL(%rip), %rax
movq %rdx, (%rax)
callq _systemDatInit000
leaq _PreMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
leaq _NimMainInner(%rip), %rax
movq %rax, -8(%rbp)
leaq -8(%rbp), %rdi
callq _setStackBottom
movq -8(%rbp), %rax
callq *%rax
movq _nim_program_result@GOTPCREL(%rip), %rax
movl (%rax), %eax
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.comm _cmdLine,8,3 ## @cmdLine
.comm _cmdCount,4,2 ## @cmdCount
.comm _gEnv,8,3 ## @gEnv
.comm _a_Ojk3MtaiEdd0iInA5MIy0g,8,3 ## @a_Ojk3MtaiEdd0iInA5MIy0g
.comm _b_p7vty3yoVn07w5RO1K5DnA,8,3 ## @b_p7vty3yoVn07w5RO1K5DnA
.comm _u_9aqSNiyBQ54SUtVd1SWMxFw,8,2 ## @u_9aqSNiyBQ54SUtVd1SWMxFw
.comm _v_4wUc4npAT79av0deXGZsH2Q,8,2 ## @v_4wUc4npAT79av0deXGZsH2Q
.section __TEXT,__const
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_2
_TM_mc66S0UpXc1RnC42wxxixg_2:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr a: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_3
_TM_mc66S0UpXc1RnC42wxxixg_3:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr b: "
.space 7
.comm _NTI_76Dnuy9cjGJPiS89cd9adV5Ew_,56,3 ## @NTI_76Dnuy9cjGJPiS89cd9adV5Ew_
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_4
_TM_mc66S0UpXc1RnC42wxxixg_4:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr u: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_6
_TM_mc66S0UpXc1RnC42wxxixg_6:
.quad 8 ## 0x8
.quad 4611686018427387912 ## 0x4000000000000008
.asciz "repr v: "
.space 7
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_7
_TM_mc66S0UpXc1RnC42wxxixg_7:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "a: "
.space 4
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_8
_TM_mc66S0UpXc1RnC42wxxixg_8:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "u: "
.space 4
.comm _z_oWO6bKm9cQN5vzaNVm75thg,8,2 ## @z_oWO6bKm9cQN5vzaNVm75thg
.p2align 3 ## @TM_mc66S0UpXc1RnC42wxxixg_9
_TM_mc66S0UpXc1RnC42wxxixg_9:
.quad 3 ## 0x3
.quad 4611686018427387907 ## 0x4000000000000003
.asciz "z: "
.space 4
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5,16,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_5
.zerofill __DATA,__bss,_castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0,144,4 ## @castingDatInit000.TM_mc66S0UpXc1RnC42wxxixg_0
.section __TEXT,__cstring,cstring_literals
L_.str: ## @.str
.asciz "lo"
L_.str.1: ## @.str.1
.asciz "hi"
.subsections_via_symbols
/* Generated by Nim Compiler v0.18.1 */
/* (c) 2018 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: MacOSX, amd64, clang */
/* Command for C compiler:
clang -c -w -O3 -I'/Users/<USERNAME>/.choosenim/toolchains/nim-#devel/lib' -o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.o /Users/<USERNAME>/Programming/Status/mpint/nimcache/mpint_casting.c */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef powerpc
#undef unix
typedef struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
struct tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew {
NU32 lo;
NU32 hi;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray_nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, reprInt)(NI64 x);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_NIMCALL(NimStringDesc*, reprAny)(void* p, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__rzAI8EMyNBAQwGODeohhAA)(NU64 x);
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__zJFdLqjHHiH2OH7BeaZ3ww)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x);
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, setStackBottom)(void* theStackBottom);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void);
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void);
NU64 a_Ojk3MtaiEdd0iInA5MIy0g;
NU64 b_p7vty3yoVn07w5RO1K5DnA;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew u_9aqSNiyBQ54SUtVd1SWMxFw;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew v_4wUc4npAT79av0deXGZsH2Q;
TNimType NTI_76Dnuy9cjGJPiS89cd9adV5Ew_;
extern TNimType NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_;
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew z_oWO6bKm9cQN5vzaNVm75thg;
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_2, "repr a: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_3, "repr b: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_4, "repr u: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_6, "repr v: ", 8);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_7, "a: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_8, "u: ", 3);
STRING_LITERAL(TM_mc66S0UpXc1RnC42wxxixg_9, "z: ", 3);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
copyMem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
(*dest).Sup.len += (*src).Sup.len;
}
static N_INLINE(void, pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew* x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
NU32 tmp;
tmp = (*x).lo;
(*x).lo += y.lo;
(*x).hi += (NU32)((NU32)(((NU32) (((NU32)((*x).lo) < (NU32)(tmp))))) + (NU32)(y.hi));
}
static N_INLINE(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, plus__jftI7N8NJ1VnVGCFw3gOJgcasting)(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew x, tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew y) {
tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew result;
memset((void*)(&result), 0, sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew));
result = x;
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&result), y);
return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
setStackBottom(locals);
}
void PreMainInner(void) {
systemInit000();
castingDatInit000();
}
void PreMain(void) {
void (*volatile inner)(void);
systemDatInit000();
inner = PreMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int cmdCount;
char** cmdLine;
char** gEnv;
N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void) {
tyArray_nHXaesL0DJZHyVS07ARPRA T1_;
NimStringDesc* T2_;
tyArray_nHXaesL0DJZHyVS07ARPRA T3_;
NimStringDesc* T4_;
tyArray_nHXaesL0DJZHyVS07ARPRA T5_;
NimStringDesc* T6_;
tyArray_nHXaesL0DJZHyVS07ARPRA T7_;
NimStringDesc* T8_;
tyArray_nHXaesL0DJZHyVS07ARPRA T9_;
NimStringDesc* T10_;
NimStringDesc* T11_;
tyArray_nHXaesL0DJZHyVS07ARPRA T12_;
NimStringDesc* T13_;
NimStringDesc* T14_;
tyArray_nHXaesL0DJZHyVS07ARPRA T15_;
NimStringDesc* T16_;
NimStringDesc* T17_;
tyArray_nHXaesL0DJZHyVS07ARPRA T18_;
NimStringDesc* T19_;
NimStringDesc* T20_;
a_Ojk3MtaiEdd0iInA5MIy0g = 130ULL;
b_p7vty3yoVn07w5RO1K5DnA = 70ULL;
u_9aqSNiyBQ54SUtVd1SWMxFw = (*((tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew*) ((&a_Ojk3MtaiEdd0iInA5MIy0g))));
v_4wUc4npAT79av0deXGZsH2Q = (*((tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew*) ((&b_p7vty3yoVn07w5RO1K5DnA))));
memset((void*)T1_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T2_ = (NimStringDesc*)0;
T2_ = rawNewString(reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g)->Sup.len + 8);
appendString(T2_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_2));
appendString(T2_, reprInt((NI64)a_Ojk3MtaiEdd0iInA5MIy0g));
T1_[0] = T2_;
echoBinSafe(T1_, 1);
memset((void*)T3_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T4_ = (NimStringDesc*)0;
T4_ = rawNewString(reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA)->Sup.len + 8);
appendString(T4_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_3));
appendString(T4_, reprInt((NI64)b_p7vty3yoVn07w5RO1K5DnA));
T3_[0] = T4_;
echoBinSafe(T3_, 1);
memset((void*)T5_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T6_ = (NimStringDesc*)0;
T6_ = rawNewString(reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T6_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_4));
appendString(T6_, reprAny((&u_9aqSNiyBQ54SUtVd1SWMxFw), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T5_[0] = T6_;
echoBinSafe(T5_, 1);
memset((void*)T7_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T8_ = (NimStringDesc*)0;
T8_ = rawNewString(reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_))->Sup.len + 8);
appendString(T8_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_6));
appendString(T8_, reprAny((&v_4wUc4npAT79av0deXGZsH2Q), (&NTI_76Dnuy9cjGJPiS89cd9adV5Ew_)));
T7_[0] = T8_;
echoBinSafe(T7_, 1);
a_Ojk3MtaiEdd0iInA5MIy0g += b_p7vty3yoVn07w5RO1K5DnA;
memset((void*)T9_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T10_ = (NimStringDesc*)0;
T11_ = (NimStringDesc*)0;
T11_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T10_ = rawNewString(T11_->Sup.len + 3);
appendString(T10_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T10_, T11_);
T9_[0] = T10_;
echoBinSafe(T9_, 1);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
pluseq__Mk6wNJTfIud9aF5tEB3dWqAcasting((&u_9aqSNiyBQ54SUtVd1SWMxFw), v_4wUc4npAT79av0deXGZsH2Q);
memset((void*)T12_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T13_ = (NimStringDesc*)0;
T14_ = (NimStringDesc*)0;
T14_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(u_9aqSNiyBQ54SUtVd1SWMxFw);
T13_ = rawNewString(T14_->Sup.len + 3);
appendString(T13_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_8));
appendString(T13_, T14_);
T12_[0] = T13_;
echoBinSafe(T12_, 1);
memset((void*)T15_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T16_ = (NimStringDesc*)0;
T17_ = (NimStringDesc*)0;
T17_ = dollar__rzAI8EMyNBAQwGODeohhAA(a_Ojk3MtaiEdd0iInA5MIy0g);
T16_ = rawNewString(T17_->Sup.len + 3);
appendString(T16_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_7));
appendString(T16_, T17_);
T15_[0] = T16_;
echoBinSafe(T15_, 1);
z_oWO6bKm9cQN5vzaNVm75thg = plus__jftI7N8NJ1VnVGCFw3gOJgcasting((*((tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew*) ((&a_Ojk3MtaiEdd0iInA5MIy0g)))), (*((tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew*) ((&b_p7vty3yoVn07w5RO1K5DnA)))));
memset((void*)T18_, 0, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
T19_ = (NimStringDesc*)0;
T20_ = (NimStringDesc*)0;
T20_ = dollar__zJFdLqjHHiH2OH7BeaZ3ww(z_oWO6bKm9cQN5vzaNVm75thg);
T19_ = rawNewString(T20_->Sup.len + 3);
appendString(T19_, ((NimStringDesc*) &TM_mc66S0UpXc1RnC42wxxixg_9));
appendString(T19_, T20_);
T18_[0] = T19_;
echoBinSafe(T18_, 1);
}
NIM_EXTERNC N_NOINLINE(void, castingDatInit000)(void) {
static TNimNode* TM_mc66S0UpXc1RnC42wxxixg_5[2];
static TNimNode TM_mc66S0UpXc1RnC42wxxixg_0[3];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.size = sizeof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew);
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.kind = 18;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.base = 0;
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.flags = 3;
TM_mc66S0UpXc1RnC42wxxixg_5[0] = &TM_mc66S0UpXc1RnC42wxxixg_0[1];
TM_mc66S0UpXc1RnC42wxxixg_0[1].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[1].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, lo);
TM_mc66S0UpXc1RnC42wxxixg_0[1].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[1].name = "lo";
TM_mc66S0UpXc1RnC42wxxixg_5[1] = &TM_mc66S0UpXc1RnC42wxxixg_0[2];
TM_mc66S0UpXc1RnC42wxxixg_0[2].kind = 1;
TM_mc66S0UpXc1RnC42wxxixg_0[2].offset = offsetof(tyObject_MpUint64_76Dnuy9cjGJPiS89cd9adV5Ew, hi);
TM_mc66S0UpXc1RnC42wxxixg_0[2].typ = (&NTI_JrFyJbYm9b5I4hJ9cWDqvfYA_);
TM_mc66S0UpXc1RnC42wxxixg_0[2].name = "hi";
TM_mc66S0UpXc1RnC42wxxixg_0[0].len = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].kind = 2; TM_mc66S0UpXc1RnC42wxxixg_0[0].sons = &TM_mc66S0UpXc1RnC42wxxixg_5[0];
NTI_76Dnuy9cjGJPiS89cd9adV5Ew_.node = &TM_mc66S0UpXc1RnC42wxxixg_0[0];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment