// File: sundale[P]gcode/rs274ngc/rs274ngc_pre.cc
// Function: Interp::set_tool_parameters()
int Interp::set_tool_parameters()
{
  // invoke to set tool parameters for current tool (pocket==0)
  // when a tool is absent, set default (zero offset) tool parameters

  if ((! _setup.random_toolchanger) && (_setup.tool_table[0].toolno <= 0)) {
    default_tool_parameters();
    return 0;
  }
  _setup.parameters[5400] = _setup.tool_table[0].toolno;
  _setup.parameters[5401] = _setup.tool_table[0].offset.tran.x;
  _setup.parameters[5402] = _setup.tool_table[0].offset.tran.y;
  _setup.parameters[5403] = _setup.tool_table[0].offset.tran.z;
  _setup.parameters[5404] = _setup.tool_table[0].offset.a;
  _setup.parameters[5405] = _setup.tool_table[0].offset.b;
  _setup.parameters[5406] = _setup.tool_table[0].offset.c;
  _setup.parameters[5407] = _setup.tool_table[0].offset.u;
  _setup.parameters[5408] = _setup.tool_table[0].offset.v;
  _setup.parameters[5409] = _setup.tool_table[0].offset.w;
  _setup.parameters[5410] = _setup.tool_table[0].diameter;
  _setup.parameters[5411] = _setup.tool_table[0].frontangle;
  _setup.parameters[5412] = _setup.tool_table[0].backangle;
  _setup.parameters[5413] = _setup.tool_table[0].orientation;

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq 0x11265(%rip), %rax     # 0x86f60
cmpl $0x0, 0xc6ac(%rax)
jne 0x75d29
movq 0x11255(%rip), %rax     # 0x86f60
cmpl $0x0, 0xd6c8(%rax)
jg 0x75d29
movq -0x18(%rbp), %rdi
callq 0x10130
movl $0x0, -0x4(%rbp)
jmp 0x75ed4
movq 0x11230(%rip), %rax     # 0x86f60
cvtsi2sdl 0xd6c8(%rax), %xmm0
movq 0x11221(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc080(%rax)
movq 0x11212(%rip), %rax     # 0x86f60
movsd 0xd6d0(%rax), %xmm0
movq 0x11203(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc088(%rax)
movq 0x111f4(%rip), %rax     # 0x86f60
movsd 0xd6d8(%rax), %xmm0
movq 0x111e5(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc090(%rax)
movq 0x111d6(%rip), %rax     # 0x86f60
movsd 0xd6e0(%rax), %xmm0
movq 0x111c7(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc098(%rax)
movq 0x111b8(%rip), %rax     # 0x86f60
movsd 0xd6e8(%rax), %xmm0
movq 0x111a9(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0a0(%rax)
movq 0x1119a(%rip), %rax     # 0x86f60
movsd 0xd6f0(%rax), %xmm0
movq 0x1118b(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0a8(%rax)
movq 0x1117c(%rip), %rax     # 0x86f60
movsd 0xd6f8(%rax), %xmm0
movq 0x1116d(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0b0(%rax)
movq 0x1115e(%rip), %rax     # 0x86f60
movsd 0xd700(%rax), %xmm0
movq 0x1114f(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0b8(%rax)
movq 0x11140(%rip), %rax     # 0x86f60
movsd 0xd708(%rax), %xmm0
movq 0x11131(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0c0(%rax)
movq 0x11122(%rip), %rax     # 0x86f60
movsd 0xd710(%rax), %xmm0
movq 0x11113(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0c8(%rax)
movq 0x11104(%rip), %rax     # 0x86f60
movsd 0xd718(%rax), %xmm0
movq 0x110f5(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0d0(%rax)
movq 0x110e6(%rip), %rax     # 0x86f60
movsd 0xd720(%rax), %xmm0
movq 0x110d7(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0d8(%rax)
movq 0x110c8(%rip), %rax     # 0x86f60
movsd 0xd728(%rax), %xmm0
movq 0x110b9(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0e0(%rax)
movq 0x110aa(%rip), %rax     # 0x86f60
cvtsi2sdl 0xd730(%rax), %xmm0
movq 0x1109b(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0e8(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)