// File: sundale[P]gcode/saicanon.cc
// Function: SET_ORIGIN_OFFSETS(double, double, double, double, double, double, double, double, double)
void SET_ORIGIN_OFFSETS(
 double x, double y, double z
 , double a  /*AA*/
 , double b  /*BB*/
 , double c  /*CC*/
 , double u, double v, double w
)
{
  fprintf(_outfile, "%5d ", _line_number++);
  print_nc_line_number();
  fprintf(_outfile, "SET_ORIGIN_OFFSETS(%.4f, %.4f, %.4f"
         ", %.4f"  /*AA*/
         ", %.4f"  /*BB*/
         ", %.4f"  /*CC*/
         ")\n", x, y, z
         , a  /*AA*/
         , b  /*BB*/
         , c  /*CC*/
         );
  _program_position_x = _program_position_x + _program_origin_x - x;
  _program_position_y = _program_position_y + _program_origin_y - y;
  _program_position_z = _program_position_z + _program_origin_z - z;
  _program_position_a = _program_position_a + _program_origin_a - a;/*AA*/
  _program_position_b = _program_position_b + _program_origin_b - b;/*BB*/
  _program_position_c = _program_position_c + _program_origin_c - c;/*CC*/

  _program_origin_x = x;
  _program_origin_y = y;
  _program_origin_z = z;
  _program_origin_a = a;  /*AA*/
  _program_origin_b = b;  /*BB*/
  _program_origin_c = c;  /*CC*/
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movsd 0x10(%rbp), %xmm8
movsd %xmm0, -0x8(%rbp)
movsd %xmm1, -0x10(%rbp)
movsd %xmm2, -0x18(%rbp)
movsd %xmm3, -0x20(%rbp)
movsd %xmm4, -0x28(%rbp)
movsd %xmm5, -0x30(%rbp)
movsd %xmm6, -0x38(%rbp)
movsd %xmm7, -0x40(%rbp)
movq 0x9f63(%rip), %rdi      # 0x10310
movl 0x8e01(%rip), %edx      # 0xf1b4
movl %edx, %eax
addl $0x1, %eax
movl %eax, 0x8df6(%rip)      # 0xf1b4
leaq 0x4e73(%rip), %rsi      # 0xb238
movb $0x0, %al
callq 0x4260
callq 0x60d0
movq 0x9f38(%rip), %rdi      # 0x10310
movsd -0x8(%rbp), %xmm0
movsd -0x10(%rbp), %xmm1
movsd -0x18(%rbp), %xmm2
movsd -0x20(%rbp), %xmm3
movsd -0x28(%rbp), %xmm4
movsd -0x30(%rbp), %xmm5
leaq 0x4e57(%rip), %rsi      # 0xb254
movb $0x6, %al
callq 0x4260
movsd 0xb804(%rip), %xmm0     # 0x11c10
addsd 0xb804(%rip), %xmm0     # 0x11c18
subsd -0x8(%rbp), %xmm0
movsd %xmm0, 0xb7ef(%rip)     # 0x11c10
movsd 0xb7f7(%rip), %xmm0     # 0x11c20
addsd 0xb7f7(%rip), %xmm0     # 0x11c28
subsd -0x10(%rbp), %xmm0
movsd %xmm0, 0xb7e2(%rip)     # 0x11c20
movsd 0xb7ea(%rip), %xmm0     # 0x11c30
addsd 0xb7ea(%rip), %xmm0     # 0x11c38
subsd -0x18(%rbp), %xmm0
movsd %xmm0, 0xb7d5(%rip)     # 0x11c30
movsd 0xb7dd(%rip), %xmm0     # 0x11c40
addsd 0xb7dd(%rip), %xmm0     # 0x11c48
subsd -0x20(%rbp), %xmm0
movsd %xmm0, 0xb7c8(%rip)     # 0x11c40
movsd 0xb7d0(%rip), %xmm0     # 0x11c50
addsd 0xb7d0(%rip), %xmm0     # 0x11c58
subsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xb7bb(%rip)     # 0x11c50
movsd 0xb7c3(%rip), %xmm0     # 0x11c60
addsd 0xb7c3(%rip), %xmm0     # 0x11c68
subsd -0x30(%rbp), %xmm0
movsd %xmm0, 0xb7ae(%rip)     # 0x11c60
movsd -0x8(%rbp), %xmm0
movsd %xmm0, 0xb759(%rip)     # 0x11c18
movsd -0x10(%rbp), %xmm0
movsd %xmm0, 0xb75c(%rip)     # 0x11c28
movsd -0x18(%rbp), %xmm0
movsd %xmm0, 0xb75f(%rip)     # 0x11c38
movsd -0x20(%rbp), %xmm0
movsd %xmm0, 0xb762(%rip)     # 0x11c48
movsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xb765(%rip)     # 0x11c58
movsd -0x30(%rbp), %xmm0
movsd %xmm0, 0xb768(%rip)     # 0x11c68
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)