Rev 1245 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1245 | Rev 1776 | ||
---|---|---|---|
Line 176... | Line 176... | ||
176 | push edx ;dword 0 |
176 | push edx ;dword 0 |
177 | loop @b |
177 | loop @b |
178 | jmp .bt_dx12_done |
178 | jmp .bt_dx12_done |
179 | .bt_dx12_make: |
179 | .bt_dx12_make: |
180 | 180 | movsx ebx,bx |
|
- | 181 | ||
Line 181... | Line 182... | ||
181 | mov ax,.x2 |
182 | mov ax,.x2 |
182 | sub ax,.x1 |
183 | sub ax,.x1 |
183 | cwde |
184 | cwde |
184 | movsx ebx,bx |
- | |
185 | shl eax,ROUND |
185 | shl eax,ROUND |
186 | cdq |
186 | cdq |
187 | idiv ebx |
187 | idiv ebx |
188 | ; mov .dx12,eax |
188 | ; mov .dx12,eax |
189 | push eax |
189 | push eax |
Line 190... | Line -... | ||
190 | - | ||
191 | mov ax,.z2 |
- | |
192 | sub ax,.z1 |
- | |
193 | cwde |
- | |
194 | shl eax,CATMULL_SHIFT |
- | |
195 | cdq |
- | |
196 | idiv ebx |
- | |
197 | push eax |
- | |
198 | 190 | ||
Line 199... | Line 191... | ||
199 | if Ext>=SSE |
191 | if Ext>=SSE |
200 | 192 | ||
201 | sub esp,16 |
193 | sub esp,28 |
202 | ; mov eax,256 |
194 | ; mov eax,256 |
203 | cvtsi2ss xmm4,[i255d] |
195 | cvtsi2ss xmm4,[i255d] |
204 | cvtsi2ss xmm3,ebx ;rcps |
196 | cvtsi2ss xmm3,ebx ;rcps |
Line 226... | Line 218... | ||
226 | divps xmm1,xmm3 ;xmm1--> | dby | dbx | dey | dex | |
218 | divps xmm1,xmm3 ;xmm1--> | dby | dbx | dey | dex | |
Line 227... | Line 219... | ||
227 | 219 | ||
228 | shufps xmm1,xmm1,10110001b |
220 | shufps xmm1,xmm1,10110001b |
229 | ;xmm1--> | dbx | dby | dex | dey | |
221 | ;xmm1--> | dbx | dby | dex | dey | |
230 | cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords |
222 | cvtps2pi mm0,xmm1 ;mm0,xmm1 ; mm0 -> 2 delta dwords |
231 | movhlps xmm1,xmm1 |
223 | movhlps xmm1,xmm1 |
232 | cvtps2pi mm1,xmm1 |
224 | cvtps2pi mm1,xmm1 ;mm1,xmm1 |
233 | movq .dey12,mm0 |
225 | movq .dey12,mm0 |
234 | movq .dby12,mm1 |
226 | movq .dby12,mm1 |
- | 227 | ;------------- |
|
- | 228 | ; pxor mm0,mm0 |
|
- | 229 | ; pxor mm1,mm1 |
|
- | 230 | ;/ pinsrw mm0,.z1,1 |
|
- | 231 | ;/ pinsrw mm0,.x1,0 |
|
- | 232 | ;/ pinsrw mm1,.z2,1 |
|
- | 233 | ;/ pinsrw mm1,.x2,0 |
|
- | 234 | mov ax,.z2 |
|
- | 235 | sub ax,.z1 |
|
- | 236 | cwde |
|
- | 237 | ;/ movd mm1,eax |
|
- | 238 | ||
- | 239 | ;/ punpcklwd mm0,mm4 |
|
- | 240 | ;/ punpcklwd mm1,mm4 |
|
- | 241 | ||
- | 242 | ; cvtpi2ps xmm1,mm1 |
|
- | 243 | ; cvtpi2ps xmm2,mm0 |
|
- | 244 | ; subps xmm1,xmm2 |
|
- | 245 | ||
- | 246 | ;/ psubd mm1,mm0 |
|
- | 247 | ||
- | 248 | movd mm2,[.t_x1] |
|
- | 249 | movd mm3,[.t_x2] |
|
- | 250 | ||
- | 251 | punpcklwd mm2,mm4 |
|
- | 252 | punpcklwd mm3,mm4 |
|
- | 253 | psubd mm3,mm2 |
|
- | 254 | ||
- | 255 | ;/ cvtpi2ps xmm1,mm1 |
|
- | 256 | cvtsi2ss xmm1,eax |
|
- | 257 | movlhps xmm1,xmm1 |
|
- | 258 | cvtpi2ps xmm1,mm3 |
|
- | 259 | ||
- | 260 | divps xmm1,xmm3 ; xmm1--> | xxx | dz | dty | dtx | |
|
- | 261 | ||
- | 262 | shufps xmm1,xmm1,11100001b |
|
- | 263 | ; xmm1--> | xxx | dz | dtx | dty | |
|
- | 264 | cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords | dtx | dty | |
|
- | 265 | movhlps xmm1,xmm1 |
|
- | 266 | cvtss2si eax,xmm1 ; eax --> 1 delta dword | dz | |
|
- | 267 | movq .dty12,mm0 |
|
- | 268 | mov .dz12,eax |
|
235 | ;------------- |
269 | ;---- |
236 | ; mov ax,.z2 |
270 | ; mov ax,.z2 |
237 | ; sub ax,.z1 |
271 | ; sub ax,.z1 |
238 | ; cwde |
272 | ; cwde |
239 | ; mov bx,.x2 |
273 | ; mov bx,.x2 |
240 | ; sub bx,.x1 |
274 | ; sub bx,.x1 |
241 | ; movsx ebx,bx |
275 | ; movsx ebx,bx |
242 | ; movd mm1,eax |
276 | ; movd mm1,eax |
243 | ; psllq mm1,32 |
277 | ; psllq mm1,32 |
- | 278 | ; movd mm1,ebx |
|
244 | ; movd mm1,ebx |
279 | |
245 | ;; push ebx |
280 | ;; push ebx |
246 | ;; push eax |
281 | ;; push eax |
247 | ;; movq mm1,[esp] |
282 | ;; movq mm1,[esp] |
248 | ;; add esp,8 |
283 | ;; add esp,8 |
Line 280... | Line 315... | ||
280 | ; cvtps2pi mm1,xmm1 ; mm1 --> 2 delta dwords | dx | dz | |
315 | ; cvtps2pi mm1,xmm1 ; mm1 --> 2 delta dwords | dx | dz | |
281 | ; movq .dty12,mm0 |
316 | ; movq .dty12,mm0 |
282 | ; movq .dz12,mm1 |
317 | ; movq .dz12,mm1 |
283 | else |
318 | else |
284 | 319 | mov ax,.z2 |
|
- | 320 | sub ax,.z1 |
|
- | 321 | cwde |
|
- | 322 | shl eax,CATMULL_SHIFT |
|
- | 323 | cdq |
|
- | 324 | idiv ebx |
|
- | 325 | push eax |
|
- | 326 | ||
Line 285... | Line 327... | ||
285 | mov ax,word[.b_x2] |
327 | mov ax,word[.b_x2] |
286 | sub ax,word[.b_x1] |
328 | sub ax,word[.b_x1] |
287 | cwde |
329 | cwde |
288 | shl eax,ROUND |
330 | shl eax,ROUND |
Line 317... | Line 359... | ||
317 | idiv ebx |
359 | idiv ebx |
318 | ; mov .dey12,eax |
360 | ; mov .dey12,eax |
319 | push eax |
361 | push eax |
320 | 362 | ||
Line 321... | Line 363... | ||
321 | end if |
363 | ;end if |
Line 322... | Line 364... | ||
322 | 364 | ||
323 | mov ax,word[.t_x2] |
365 | mov ax,word[.t_x2] |
324 | sub ax,word[.t_x1] |
366 | sub ax,word[.t_x1] |
325 | cwde |
367 | cwde |
Line 336... | Line 378... | ||
336 | cdq |
378 | cdq |
337 | idiv ebx |
379 | idiv ebx |
338 | ; mov .dty12,eax |
380 | ; mov .dty12,eax |
339 | push eax |
381 | push eax |
340 | 382 | end if |
|
341 | .bt_dx12_done: |
383 | .bt_dx12_done: |
342 | 384 | ||
Line 343... | Line 385... | ||
343 | mov bx,.y3 ; calc delta13 |
385 | mov bx,.y3 ; calc delta13 |
344 | sub bx,.y1 |
386 | sub bx,.y1 |
345 | jnz .bt_dx13_make |
387 | jnz .bt_dx13_make |
Line 359... | Line 401... | ||
359 | idiv ebx |
401 | idiv ebx |
360 | ; mov .dx13,eax |
402 | ; mov .dx13,eax |
361 | push eax |
403 | push eax |
362 | 404 | ||
Line 363... | Line -... | ||
363 | mov ax,.z3 |
- | |
364 | sub ax,.z1 |
- | |
365 | cwde |
- | |
366 | shl eax,CATMULL_SHIFT |
- | |
367 | cdq |
- | |
368 | idiv ebx |
- | |
369 | ; mov .dz13,eax |
- | |
370 | push eax |
- | |
371 | - | ||
372 | if Ext>=SSE |
405 | if Ext>=SSE |
Line 373... | Line 406... | ||
373 | 406 | ||
374 | sub esp,16 |
407 | sub esp,28 |
375 | ; mov eax,255 |
408 | ; mov eax,255 |
376 | cvtsi2ss xmm4,[i255d] |
409 | cvtsi2ss xmm4,[i255d] |
377 | cvtsi2ss xmm3,ebx ;rcps |
410 | cvtsi2ss xmm3,ebx ;rcps |
378 | divss xmm3,xmm4 |
411 | divss xmm3,xmm4 |
Line 404... | Line 437... | ||
404 | movhlps xmm1,xmm1 |
437 | movhlps xmm1,xmm1 |
405 | cvtps2pi mm1,xmm1 |
438 | cvtps2pi mm1,xmm1 |
406 | movq .dey13,mm0 |
439 | movq .dey13,mm0 |
407 | movq .dby13,mm1 |
440 | movq .dby13,mm1 |
408 | else |
441 | ;---------- |
- | 442 | mov ax,.z3 |
|
- | 443 | sub ax,.z1 |
|
- | 444 | cwde |
|
- | 445 | ||
- | 446 | movd mm2,[.t_x1] |
|
- | 447 | movd mm3,[.t_x3] |
|
- | 448 | ||
- | 449 | punpcklwd mm2,mm4 |
|
- | 450 | punpcklwd mm3,mm4 |
|
- | 451 | psubd mm3,mm2 |
|
- | 452 | ||
- | 453 | cvtsi2ss xmm1,eax |
|
- | 454 | movlhps xmm1,xmm1 |
|
- | 455 | cvtpi2ps xmm1,mm3 |
|
- | 456 | ||
- | 457 | divps xmm1,xmm3 ; xmm1--> | xxx | dz | dty | dtx | |
|
- | 458 | ||
- | 459 | shufps xmm1,xmm1,11100001b |
|
- | 460 | ; xmm1--> | xxx | dz | dtx | dty | |
|
- | 461 | cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords | dtx | dty | |
|
- | 462 | movhlps xmm1,xmm1 |
|
- | 463 | cvtss2si eax,xmm1 ; eax --> 1 delta dword | dz | |
|
- | 464 | movq .dty13,mm0 |
|
- | 465 | mov .dz13,eax |
|
- | 466 | else |
|
409 | mov ax,word[.b_x3] |
467 | mov ax,.z3 |
- | 468 | sub ax,.z1 |
|
- | 469 | cwde |
|
- | 470 | shl eax,CATMULL_SHIFT |
|
- | 471 | cdq |
|
- | 472 | idiv ebx |
|
- | 473 | ; mov .dz13,eax |
|
- | 474 | push eax |
|
- | 475 | ||
- | 476 | ||
- | 477 | mov ax,word[.b_x3] |
|
410 | sub ax,word[.b_x1] |
478 | sub ax,word[.b_x1] |
411 | cwde |
479 | cwde |
412 | shl eax,ROUND |
480 | shl eax,ROUND |
413 | cdq |
481 | cdq |
414 | idiv ebx |
482 | idiv ebx |
Line 440... | Line 508... | ||
440 | cdq |
508 | cdq |
441 | idiv ebx |
509 | idiv ebx |
442 | ; mov .dey13,eax |
510 | ; mov .dey13,eax |
443 | push eax |
511 | push eax |
444 | end if |
512 | |
445 | - | ||
Line 446... | Line 513... | ||
446 | mov ax,word[.t_x3] |
513 | mov ax,word[.t_x3] |
447 | sub ax,word[.t_x1] |
514 | sub ax,word[.t_x1] |
448 | cwde |
515 | cwde |
449 | shl eax,ROUND |
516 | shl eax,ROUND |
Line 459... | Line 526... | ||
459 | cdq |
526 | cdq |
460 | idiv ebx |
527 | idiv ebx |
461 | ; mov .dty13,eax |
528 | ; mov .dty13,eax |
462 | push eax |
529 | push eax |
463 | 530 | end if |
|
464 | .bt_dx13_done: |
531 | .bt_dx13_done: |
465 | 532 | ||
Line 466... | Line 533... | ||
466 | mov bx,.y3 ; calc delta23 |
533 | mov bx,.y3 ; calc delta23 |
467 | sub bx,.y2 |
534 | sub bx,.y2 |
468 | jnz .bt_dx23_make |
535 | jnz .bt_dx23_make |
Line 482... | Line 549... | ||
482 | idiv ebx |
549 | idiv ebx |
483 | ; mov .dx23,eax |
550 | ; mov .dx23,eax |
484 | push eax |
551 | push eax |
485 | 552 | ||
Line 486... | Line -... | ||
486 | mov ax,.z3 |
- | |
487 | sub ax,.z2 |
- | |
488 | cwde |
- | |
489 | shl eax,CATMULL_SHIFT |
- | |
490 | cdq |
- | |
491 | idiv ebx |
- | |
492 | ; mov .dz23,eax |
- | |
493 | push eax |
- | |
494 | - | ||
495 | if Ext>=SSE |
553 | if Ext>=SSE |
Line 496... | Line 554... | ||
496 | 554 | ||
497 | sub esp,16 |
555 | sub esp,28 |
498 | ; mov eax,255 |
556 | ; mov eax,255 |
499 | cvtsi2ss xmm4,[i255d] |
557 | cvtsi2ss xmm4,[i255d] |
500 | cvtsi2ss xmm3,ebx ;rcps |
558 | cvtsi2ss xmm3,ebx ;rcps |
501 | divss xmm3,xmm4 |
559 | divss xmm3,xmm4 |
Line 527... | Line 585... | ||
527 | movhlps xmm1,xmm1 |
585 | movhlps xmm1,xmm1 |
528 | cvtps2pi mm1,xmm1 |
586 | cvtps2pi mm1,xmm1 |
529 | movq .dey23,mm0 |
587 | movq .dey23,mm0 |
530 | movq .dby23,mm1 |
588 | movq .dby23,mm1 |
531 | else |
589 | ;---------- |
- | 590 | mov ax,.z3 |
|
- | 591 | sub ax,.z2 |
|
- | 592 | cwde |
|
- | 593 | ||
- | 594 | movd mm2,[.t_x2] |
|
- | 595 | movd mm3,[.t_x3] |
|
- | 596 | ||
- | 597 | punpcklwd mm2,mm4 |
|
- | 598 | punpcklwd mm3,mm4 |
|
- | 599 | psubd mm3,mm2 |
|
- | 600 | ||
- | 601 | cvtsi2ss xmm1,eax |
|
- | 602 | movlhps xmm1,xmm1 |
|
- | 603 | cvtpi2ps xmm1,mm3 |
|
- | 604 | ||
- | 605 | divps xmm1,xmm3 ; xmm1--> | xxx | dz | dty | dtx | |
|
- | 606 | ||
- | 607 | shufps xmm1,xmm1,11100001b |
|
- | 608 | ; xmm1--> | xxx | dz | dtx | dty | |
|
- | 609 | cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords | dtx | dty | |
|
- | 610 | movhlps xmm1,xmm1 |
|
- | 611 | cvtss2si eax,xmm1 ; eax --> 1 delta dword | dz | |
|
- | 612 | movq .dty23,mm0 |
|
- | 613 | mov .dz23,eax |
|
- | 614 | else |
|
532 | mov ax,word[.b_x3] |
615 | |
- | 616 | mov ax,.z3 |
|
- | 617 | sub ax,.z2 |
|
- | 618 | cwde |
|
- | 619 | shl eax,CATMULL_SHIFT |
|
- | 620 | cdq |
|
- | 621 | idiv ebx |
|
- | 622 | ; mov .dz23,eax |
|
- | 623 | push eax |
|
- | 624 | ||
- | 625 | mov ax,word[.b_x3] |
|
533 | sub ax,word[.b_x2] |
626 | sub ax,word[.b_x2] |
534 | cwde |
627 | cwde |
535 | shl eax,ROUND |
628 | shl eax,ROUND |
536 | cdq |
629 | cdq |
537 | idiv ebx |
630 | idiv ebx |
Line 563... | Line 656... | ||
563 | cdq |
656 | cdq |
564 | idiv ebx |
657 | idiv ebx |
565 | ; mov .dey23,eax |
658 | ; mov .dey23,eax |
566 | push eax |
659 | push eax |
567 | end if |
660 | |
568 | 661 | ||
Line 569... | Line 662... | ||
569 | mov ax,word[.t_x3] |
662 | mov ax,word[.t_x3] |
570 | sub ax,word[.t_x2] |
663 | sub ax,word[.t_x2] |
571 | cwde |
664 | cwde |
572 | shl eax,ROUND |
665 | shl eax,ROUND |
Line 582... | Line 675... | ||
582 | cdq |
675 | cdq |
583 | idiv ebx |
676 | idiv ebx |
584 | ; mov .dty23,eax |
677 | ; mov .dty23,eax |
585 | push eax |
678 | push eax |
586 | 679 | end if |
|
587 | ; sub esp,40 |
680 | ; sub esp,40 |
588 | .bt_dx23_done: |
681 | .bt_dx23_done: |
589 | sub esp,64 |
682 | sub esp,64 |
590 | movsx eax,.x1 |
683 | movsx eax,.x1 |
591 | shl eax,ROUND |
684 | shl eax,ROUND |
592 | mov .cx1,eax |
685 | mov .cx1,eax |