// File: /workspace/github_c_makefile_star2_O0/hoobaa[P]ficl/float.c
// Function: ficlSystemCompileFloat
void ficlSystemCompileFloat(ficlSystem *system)
{
#if FICL_WANT_FLOAT
    ficlDictionary *dictionary = ficlSystemGetDictionary(system);
    ficlDictionary *environment = ficlSystemGetEnvironment(system);

    FICL_SYSTEM_ASSERT(system, dictionary);
    FICL_SYSTEM_ASSERT(system, environment);

    ficlDictionarySetPrimitive(dictionary, "fconstant", ficlPrimitiveFConstant,      FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "fvalue", ficlPrimitiveFConstant,      FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "f2constant", ficlPrimitiveF2Constant,      FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "f2value",  ficlPrimitiveF2Constant,      FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "fdepth",    ficlPrimitiveFDepth,         FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "fliteral",  ficlPrimitiveFLiteralImmediate,     FICL_WORD_IMMEDIATE);
    ficlDictionarySetPrimitive(dictionary, "f.",        ficlPrimitiveFDot,           FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "f.s",       ficlVmDisplayFloatStack,  FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "fe.",       ficlPrimitiveEDot,           FICL_WORD_DEFAULT);

#if FICL_WANT_LOCALS
    ficlDictionarySetPrimitive(dictionary, "(flocal)",   ficlPrimitiveFLocalParen,     FICL_WORD_COMPILE_ONLY);
    ficlDictionarySetPrimitive(dictionary, "(f2local)",  ficlPrimitiveF2LocalParen,  FICL_WORD_COMPILE_ONLY);
#endif /* FICL_WANT_LOCALS */

 /* 
    Missing words:

    d>f
    f>d 
    falign 
    faligned 
    float+
    floats
    floor
    fmax
    fmin
*/

    ficlDictionarySetConstant(environment, "floating",       FICL_FALSE);  /* not all required words are present */
    ficlDictionarySetConstant(environment, "floating-ext",   FICL_FALSE);
    ficlDictionarySetConstant(environment, "floating-stack", system->stackSize);
#else /* FICL_WANT_FLOAT */
	/* get rid of unused parameter warning */
	system = NULL;
#endif
    return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3cc0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3ce0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x10f2b(%rip), %rsi     # 0x1520c
leaq 0x128(%rip), %rdx       # 0x4410
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10f1c(%rip), %rsi     # 0x15216
leaq 0x10f(%rip), %rdx       # 0x4410
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10f0a(%rip), %rsi     # 0x1521d
leaq 0x166(%rip), %rdx       # 0x4480
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10efc(%rip), %rsi     # 0x15228
leaq 0x14d(%rip), %rdx       # 0x4480
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10eeb(%rip), %rsi     # 0x15230
leaq 0x1d4(%rip), %rdx       # 0x4520
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10ed9(%rip), %rsi     # 0x15237
leaq -0x175(%rip), %rdx      # 0x41f0
movl $0x1, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10ec6(%rip), %rsi     # 0x15240
leaq 0x1df(%rip), %rdx       # 0x4560
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10eb0(%rip), %rsi     # 0x15243
leaq -0x55a(%rip), %rdx      # 0x3e40
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x10e9b(%rip), %rsi     # 0x15247
leaq 0x20d(%rip), %rdx       # 0x45c0
xorl %ecx, %ecx
callq 0x117d0
movq -0x18(%rbp), %rdi
leaq 0x10e86(%rip), %rsi     # 0x1524b
xorl %eax, %eax
movl %eax, %edx
callq 0x11540
movq -0x18(%rbp), %rdi
leaq 0x10e7b(%rip), %rsi     # 0x15254
xorl %eax, %eax
movl %eax, %edx
callq 0x11540
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rdx
leaq 0x10e69(%rip), %rsi     # 0x15261
callq 0x11540
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)