Subversion Repositories Kolibri OS

Rev

Rev 2881 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2881 Rev 6769
Line 26... Line 26...
26
	fisub	word[esi+z3d]
26
	fisub	word[esi+z3d]
27
	fstp	dword[ebx+vec_z]
27
	fstp	dword[ebx+vec_z]
Line 28... Line 28...
28
 
28
 
29
ret
29
ret
-
 
30
end if
-
 
31
reverse_mx_3x3:
-
 
32
; esi - source matrix
-
 
33
; edi - desired reversed matrix
-
 
34
 
-
 
35
  push	ebp
-
 
36
  mov	ebp,esp
-
 
37
  sub	esp,4
-
 
38
  .det	equ  ebp-4
-
 
39
 
-
 
40
  fninit
-
 
41
  fld  dword[esi]
-
 
42
  fmul dword[esi+16]
-
 
43
  fmul dword[esi+32]
-
 
44
  fld  dword[esi+12]
-
 
45
  fmul dword[esi+28]
-
 
46
  fmul dword[esi+8]
-
 
47
  faddp
-
 
48
  fld  dword[esi+24]
-
 
49
  fmul dword[esi+4]
-
 
50
  fmul dword[esi+20]
-
 
51
  faddp
-
 
52
  fld  dword[esi]
-
 
53
  fmul dword[esi+28]
-
 
54
  fmul dword[esi+20]
-
 
55
  fchs
-
 
56
  faddp
-
 
57
  fld  dword[esi+24]
-
 
58
  fmul dword[esi+16]
-
 
59
  fmul dword[esi+8]
-
 
60
  fchs
-
 
61
  faddp
-
 
62
  fld  dword[esi+12]
-
 
63
  fmul dword[esi+4]
-
 
64
  fmul dword[esi+32]
-
 
65
  fchs
-
 
66
  faddp
-
 
67
  fstp dword[.det]
-
 
68
  cmp  dword[.det],0
-
 
69
  jne  @f
-
 
70
  int3
-
 
71
 @@:
-
 
72
 ; fld1
-
 
73
 ; fdiv dword[.det]
-
 
74
 ; fstp dword[.det]
-
 
75
 
-
 
76
  fld  dword[esi+16]
-
 
77
  fmul dword[esi+32]
-
 
78
  fld  dword[esi+20]
-
 
79
  fmul dword[esi+28]
-
 
80
  fchs
-
 
81
  faddp
-
 
82
  fdiv dword[.det]
-
 
83
  fstp dword[edi]
-
 
84
 
-
 
85
  fld  dword[esi+8]
-
 
86
  fmul dword[esi+28]
-
 
87
  fld  dword[esi+4]
-
 
88
  fmul dword[esi+32]
-
 
89
  fchs
-
 
90
  faddp
-
 
91
  fdiv dword[.det]
-
 
92
  fstp dword[edi+4]
-
 
93
 
-
 
94
  fld  dword[esi+4]
-
 
95
  fmul dword[esi+20]
-
 
96
  fld  dword[esi+8]
-
 
97
  fmul dword[esi+16]
-
 
98
  fchs
-
 
99
  faddp
-
 
100
  fdiv dword[.det]
-
 
101
  fstp dword[edi+8]
-
 
102
 
-
 
103
  fld  dword[esi+20]
-
 
104
  fmul dword[esi+24]
-
 
105
  fld  dword[esi+12]
-
 
106
  fmul dword[esi+32]
-
 
107
  fchs
-
 
108
  faddp
-
 
109
  fdiv dword[.det]
-
 
110
  fstp dword[edi+12]
-
 
111
 
-
 
112
  fld  dword[esi]
-
 
113
  fmul dword[esi+32]
-
 
114
  fld  dword[esi+8]
-
 
115
  fmul dword[esi+24]
-
 
116
  fchs
-
 
117
  faddp
-
 
118
  fdiv dword[.det]
-
 
119
  fstp dword[edi+16]
-
 
120
 
-
 
121
  fld  dword[esi+8]
-
 
122
  fmul dword[esi+12]
-
 
123
  fld  dword[esi]
-
 
124
  fmul dword[esi+20]
-
 
125
  fchs
-
 
126
  faddp
-
 
127
  fdiv dword[.det]
-
 
128
  fstp dword[edi+20]
-
 
129
 
-
 
130
  fld  dword[esi+12]
-
 
131
  fmul dword[esi+28]
-
 
132
  fld  dword[esi+16]
-
 
133
  fmul dword[esi+24]
-
 
134
  fchs
-
 
135
  faddp
-
 
136
  fdiv dword[.det]
-
 
137
  fstp dword[edi+24]
-
 
138
 
-
 
139
  fld  dword[esi+4]
-
 
140
  fmul dword[esi+24]
-
 
141
  fld  dword[esi]
-
 
142
  fmul dword[esi+28]
-
 
143
  fchs
-
 
144
  faddp
-
 
145
  fdiv dword[.det]
-
 
146
  fstp dword[edi+28]
-
 
147
 
-
 
148
  fld  dword[esi]
-
 
149
  fmul dword[esi+16]
-
 
150
  fld  dword[esi+4]
-
 
151
  fmul dword[esi+12]
-
 
152
  fchs
-
 
153
  faddp
-
 
154
  fdiv dword[.det]
-
 
155
  fstp dword[edi+32]
-
 
156
 
-
 
157
 
-
 
158
  mov  esp,ebp
-
 
159
  pop  ebp
-
 
160
ret
30
end if
161
 
31
make_vector_r:
162
make_vector_r:
32
	fninit
163
	fninit
33
	fld	dword[edi]		  ;edi+x3d
164
	fld	dword[edi]		  ;edi+x3d
34
	fsub	dword[esi]		  ;esi+x3d
165
	fsub	dword[esi]		  ;esi+x3d
Line 209... Line 340...
209
     fld       .sinx
340
     fld       .sinx
210
     fmul      .sinz
341
     fmul      .sinz
211
     faddp
342
     faddp
212
     fstp      dword[edi+24]
343
     fstp      dword[edi+24]
Line 213... Line 344...
213
 
344
 
214
     fld       .siny
345
     fld       .cosy
215
     fmul      .sinz
346
     fmul      .sinz
Line 216... Line 347...
216
     fstp      dword[edi+4]
347
     fstp      dword[edi+4]
217
 
348
 
Line 375... Line 506...
375
;     edi - offset to 2d points  ( as 3 words integer)
506
;     edi - offset to 2d points  ( as 3 words integer)
376
;     ecx - number of points
507
;     ecx - number of points
377
translate_points:  ; just convert into integer; z coord still needed
508
translate_points:  ; just convert into integer; z coord still needed
378
    fninit
509
    fninit
379
  .again:
510
  .again:
-
 
511
  if 0
380
    fld    dword[esi+8]
512
    fld    dword[esi+8]
381
 ;   fmul   [rsscale]
513
 ;   fmul   [rsscale]
382
    fist   word[edi+4]
514
    fist   word[edi+4]
Line 383... Line 515...
383
 
515
 
Line 401... Line 533...
401
    fdivrp  ;   st0,st1
533
    fdivrp  ;   st0,st1
Line 402... Line 534...
402
 
534
 
403
    fiadd  [yobs]
535
    fiadd  [yobs]
404
    fiadd  [vect_y]
536
    fiadd  [vect_y]
405
    fistp  word[edi+2]
537
    fistp  word[edi+2]
-
 
538
   end if
-
 
539
   ; movups   xmm0,[esi]
-
 
540
   ; cvtps2dq xmm0,xmm0
-
 
541
   ; packsdw xmm0,xmm0
-
 
542
   ; movq     [edi]
-
 
543
    fld    dword[esi]
-
 
544
    fiadd  [vect_x]
-
 
545
    fistp  word[edi]
-
 
546
    fld    dword[esi+4]
-
 
547
    fiadd  [vect_y]
-
 
548
    fistp  word[edi+2]
-
 
549
    fld    dword[esi+8]
406
 
550
    fistp  word[edi+4]
407
    add    esi,12
551
    add    esi,12
408
    add    edi,6
552
    add    edi,6
409
    dec    ecx
553
    dec    ecx