/[qemu]/qemu/target-i386/ops_sse.h
ViewVC logotype

Diff of /qemu/target-i386/ops_sse.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by bellard, Sat Jan 8 18:58:29 2005 UTC revision 1.2 by bellard, Sun Jan 16 01:07:28 2005 UTC
# Line 528  void OPPROTO glue(op_maskmov, SUFFIX) (v Line 528  void OPPROTO glue(op_maskmov, SUFFIX) (v
528      s = (Reg *)((char *)env + PARAM2);      s = (Reg *)((char *)env + PARAM2);
529      for(i = 0; i < (8 << SHIFT); i++) {      for(i = 0; i < (8 << SHIFT); i++) {
530          if (s->B(i) & 0x80)          if (s->B(i) & 0x80)
531              stb(A0, d->B(i));              stb(A0 + i, d->B(i));
532      }      }
533  }  }
534    
# Line 565  void OPPROTO glue(op_pshufw, SUFFIX) (vo Line 565  void OPPROTO glue(op_pshufw, SUFFIX) (vo
565      *d = r;      *d = r;
566  }  }
567  #else  #else
568    void OPPROTO op_shufps(void)
569    {
570        Reg r, *d, *s;
571        int order;
572        d = (Reg *)((char *)env + PARAM1);
573        s = (Reg *)((char *)env + PARAM2);
574        order = PARAM3;
575        r.L(0) = d->L(order & 3);
576        r.L(1) = d->L((order >> 2) & 3);
577        r.L(2) = s->L((order >> 4) & 3);
578        r.L(3) = s->L((order >> 6) & 3);
579        *d = r;
580    }
581    
582  void OPPROTO op_shufpd(void)  void OPPROTO op_shufpd(void)
583  {  {
584      Reg r, *d, *s;      Reg r, *d, *s;
# Line 572  void OPPROTO op_shufpd(void) Line 586  void OPPROTO op_shufpd(void)
586      d = (Reg *)((char *)env + PARAM1);      d = (Reg *)((char *)env + PARAM1);
587      s = (Reg *)((char *)env + PARAM2);      s = (Reg *)((char *)env + PARAM2);
588      order = PARAM3;      order = PARAM3;
589      r.Q(0) = s->Q(order & 1);      r.Q(0) = d->Q(order & 1);
590      r.Q(1) = s->Q((order >> 1) & 1);      r.Q(1) = s->Q((order >> 1) & 1);
591      *d = r;      *d = r;
592  }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26