// File: /workspace/github_c_makefile_star2_O0/markpeerdeman[P]mbemm/src/emath/linearc.c
// Function: plug_in_and_sum
void plug_in_and_sum(int row, int col, matrix sub, 
					 matrix main)
{ /* IN:          row, col, sub, main
   * OUT:         nothing
   * MODIFIES:    the matrix 'main'
   * USES:        the matrix 'main'
   * DESCRIPTION: 
   * This function plugs the [3x3] matrix called 'sub' in one of the main
   * system matrices identified by 'main'. The parameters 'row' and 'col'
   * define the location of the plugging. The submatrix is summed to the
   * values which are already present in the matrices. The 'row' and 'col'
   * values are the numbers when the main matrices are counted as composited
   * from small [3x3] matrices.
   */
   M(main,row*3-2,col*3-2)+=M(sub,1,1);
   M(main,row*3-2,col*3-1)+=M(sub,1,2);
   M(main,row*3-2,col*3  )+=M(sub,1,3);
   M(main,row*3-1,col*3-2)+=M(sub,2,1);
   M(main,row*3-1,col*3-1)+=M(sub,2,2);
   M(main,row*3-1,col*3  )+=M(sub,2,3);
   M(main,row*3  ,col*3-2)+=M(sub,3,1);
   M(main,row*3  ,col*3-1)+=M(sub,3,2);
   M(main,row*3  ,col*3  )+=M(sub,3,3);
}

// Assembly:
movl %edi, -0x4(%rsp)
movl %esi, -0x8(%rsp)
movq %rdx, -0x10(%rsp)
movq %rcx, -0x18(%rsp)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd (%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x10(%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd (%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x10(%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd (%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x10(%rax), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
imull $0x3, -0x4(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
imull $0x3, -0x8(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
retq
nopl (%rax,%rax)