// File: sundale[P]gcode/saicanon.cc
// Function: USE_LENGTH_UNITS(int)
void USE_LENGTH_UNITS(CANON_UNITS in_unit)
{
  if (in_unit == CANON_UNITS_INCHES)
    {
      PRINT0("USE_LENGTH_UNITS(CANON_UNITS_INCHES)\n");
      if (_length_unit_type == CANON_UNITS_MM)
        {
          _length_unit_type = CANON_UNITS_INCHES;
          _length_unit_factor = 25.4;
          _program_origin_x = (_program_origin_x / 25.4);
          _program_origin_y = (_program_origin_y / 25.4);
          _program_origin_z = (_program_origin_z / 25.4);
          _program_position_x = (_program_position_x / 25.4);
          _program_position_y = (_program_position_y / 25.4);
          _program_position_z = (_program_position_z / 25.4);
        }
    }
  else if (in_unit == CANON_UNITS_MM)
    {
      PRINT0("USE_LENGTH_UNITS(CANON_UNITS_MM)\n");
      if (_length_unit_type == CANON_UNITS_INCHES)
        {
          _length_unit_type = CANON_UNITS_MM;
          _length_unit_factor = 1.0;
          _program_origin_x = (_program_origin_x * 25.4);
          _program_origin_y = (_program_origin_y * 25.4);
          _program_origin_z = (_program_origin_z * 25.4);
          _program_position_x = (_program_position_x * 25.4);
          _program_position_y = (_program_position_y * 25.4);
          _program_position_z = (_program_position_z * 25.4);
        }
    }
  else
    PRINT0("USE_LENGTH_UNITS(UNKNOWN)\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x1, -0x4(%rbp)
jne 0x666f
cmpq $0x0, 0x9de3(%rip)      # 0x10310
jne 0x6540
movq 0x8a82(%rip), %rax      # 0xefb8
movq (%rax), %rax
movq %rax, 0x9dd0(%rip)      # 0x10310
movq 0x9dc9(%rip), %rdi      # 0x10310
movl 0x8c67(%rip), %edx      # 0xf1b4
movl %edx, %eax
addl $0x1, %eax
movl %eax, 0x8c5c(%rip)      # 0xf1b4
leaq 0x4cd9(%rip), %rsi      # 0xb238
movb $0x0, %al
callq 0x4260
callq 0x60d0
cmpq $0x0, 0x9d9d(%rip)      # 0x10310
jne 0x6586
movq 0x8a3c(%rip), %rax      # 0xefb8
movq (%rax), %rax
movq %rax, 0x9d8a(%rip)      # 0x10310
movq 0x9d83(%rip), %rdi      # 0x10310
leaq 0x4cf8(%rip), %rsi      # 0xb28c
movb $0x0, %al
callq 0x4260
cmpl $0x2, 0x8c16(%rip)      # 0xf1b8
jne 0x666a
movl $0x1, 0x8c06(%rip)      # 0xf1b8
movsd 0x4c4e(%rip), %xmm0     # 0xb208
movsd %xmm0, 0x8bfe(%rip)     # 0xf1c0
movsd 0xb64e(%rip), %xmm0     # 0x11c18
movsd 0x4c36(%rip), %xmm1     # 0xb208
divsd %xmm1, %xmm0
movsd %xmm0, 0xb63a(%rip)     # 0x11c18
movsd 0xb642(%rip), %xmm0     # 0x11c28
movsd 0x4c1a(%rip), %xmm1     # 0xb208
divsd %xmm1, %xmm0
movsd %xmm0, 0xb62e(%rip)     # 0x11c28
movsd 0xb636(%rip), %xmm0     # 0x11c38
movsd 0x4bfe(%rip), %xmm1     # 0xb208
divsd %xmm1, %xmm0
movsd %xmm0, 0xb622(%rip)     # 0x11c38
movsd 0xb5f2(%rip), %xmm0     # 0x11c10
movsd 0x4be2(%rip), %xmm1     # 0xb208
divsd %xmm1, %xmm0
movsd %xmm0, 0xb5de(%rip)     # 0x11c10
movsd 0xb5e6(%rip), %xmm0     # 0x11c20
movsd 0x4bc6(%rip), %xmm1     # 0xb208
divsd %xmm1, %xmm0
movsd %xmm0, 0xb5d2(%rip)     # 0x11c20
movsd 0xb5da(%rip), %xmm0     # 0x11c30
movsd 0x4baa(%rip), %xmm1     # 0xb208
divsd %xmm1, %xmm0
movsd %xmm0, 0xb5c6(%rip)     # 0x11c30
jmp 0x6820
cmpl $0x2, -0x4(%rbp)
jne 0x67a8
cmpq $0x0, 0x9c8f(%rip)      # 0x10310
jne 0x6694
movq 0x892e(%rip), %rax      # 0xefb8
movq (%rax), %rax
movq %rax, 0x9c7c(%rip)      # 0x10310
movq 0x9c75(%rip), %rdi      # 0x10310
movl 0x8b13(%rip), %edx      # 0xf1b4
movl %edx, %eax
addl $0x1, %eax
movl %eax, 0x8b08(%rip)      # 0xf1b4
leaq 0x4b85(%rip), %rsi      # 0xb238
movb $0x0, %al
callq 0x4260
callq 0x60d0
cmpq $0x0, 0x9c49(%rip)      # 0x10310
jne 0x66da
movq 0x88e8(%rip), %rax      # 0xefb8
movq (%rax), %rax
movq %rax, 0x9c36(%rip)      # 0x10310
movq 0x9c2f(%rip), %rdi      # 0x10310
leaq 0x4bca(%rip), %rsi      # 0xb2b2
movb $0x0, %al
callq 0x4260
cmpl $0x1, 0x8ac2(%rip)      # 0xf1b8
jne 0x67a6
movl $0x2, 0x8ab2(%rip)      # 0xf1b8
movsd 0x4b02(%rip), %xmm0     # 0xb210
movsd %xmm0, 0x8aaa(%rip)     # 0xf1c0
movsd 0x4aea(%rip), %xmm0     # 0xb208
mulsd 0xb4f2(%rip), %xmm0     # 0x11c18
movsd %xmm0, 0xb4ea(%rip)     # 0x11c18
movsd 0x4ad2(%rip), %xmm0     # 0xb208
mulsd 0xb4ea(%rip), %xmm0     # 0x11c28
movsd %xmm0, 0xb4e2(%rip)     # 0x11c28
movsd 0x4aba(%rip), %xmm0     # 0xb208
mulsd 0xb4e2(%rip), %xmm0     # 0x11c38
movsd %xmm0, 0xb4da(%rip)     # 0x11c38
movsd 0x4aa2(%rip), %xmm0     # 0xb208
mulsd 0xb4a2(%rip), %xmm0     # 0x11c10
movsd %xmm0, 0xb49a(%rip)     # 0x11c10
movsd 0x4a8a(%rip), %xmm0     # 0xb208
mulsd 0xb49a(%rip), %xmm0     # 0x11c20
movsd %xmm0, 0xb492(%rip)     # 0x11c20
movsd 0x4a72(%rip), %xmm0     # 0xb208
mulsd 0xb492(%rip), %xmm0     # 0x11c30
movsd %xmm0, 0xb48a(%rip)     # 0x11c30
jmp 0x681e
cmpq $0x0, 0x9b60(%rip)      # 0x10310
jne 0x67c3
movq 0x87ff(%rip), %rax      # 0xefb8
movq (%rax), %rax
movq %rax, 0x9b4d(%rip)      # 0x10310
movq 0x9b46(%rip), %rdi      # 0x10310
movl 0x89e4(%rip), %edx      # 0xf1b4
movl %edx, %eax
addl $0x1, %eax
movl %eax, 0x89d9(%rip)      # 0xf1b4
leaq 0x4a56(%rip), %rsi      # 0xb238
movb $0x0, %al
callq 0x4260
callq 0x60d0
cmpq $0x0, 0x9b1a(%rip)      # 0x10310
jne 0x6809
movq 0x87b9(%rip), %rax      # 0xefb8
movq (%rax), %rax
movq %rax, 0x9b07(%rip)      # 0x10310
movq 0x9b00(%rip), %rdi      # 0x10310
leaq 0x4abd(%rip), %rsi      # 0xb2d4
movb $0x0, %al
callq 0x4260
jmp 0x6820
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)