Skip to content

Commit

Permalink
Added SSE4.1 to the inline assembler
Browse files Browse the repository at this point in the history
  • Loading branch information
Govelius committed Jul 16, 2011
1 parent 64835f6 commit 7f5b070
Show file tree
Hide file tree
Showing 4 changed files with 299 additions and 9 deletions.
3 changes: 3 additions & 0 deletions src/backend/cod3.c
Original file line number Diff line number Diff line change
Expand Up @@ -4100,6 +4100,9 @@ unsigned codout(code *c)
ins = inssize[op & 0xFF];
switch (op & 0xFF)
{ case ESCAPE:
/* Check for SSE4 opcode pmaxuw xmm1,xmm2/m128 */
if(op == 0x660F383E) break;

switch (op & 0xFFFF00)
{ case ESClinnum:
/* put out line number stuff */
Expand Down
2 changes: 2 additions & 0 deletions src/backend/iasm.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ typedef unsigned opflag_t;
#define _mmm64 CONSTRUCT_FLAGS( _64, _m, 0, _f64)
#define _mmm128 CONSTRUCT_FLAGS( 0, _m, 0, _f128)

#define _xmm_m16 CONSTRUCT_FLAGS( _16, _m, _rspecial, 0)
#define _xmm_m32 CONSTRUCT_FLAGS( _32, _m, _rspecial, 0)
#define _xmm_m64 CONSTRUCT_FLAGS( _anysize, _m, _rspecial, 0)
#define _xmm_m128 CONSTRUCT_FLAGS( _anysize, _m, _rspecial, 0)
Expand Down Expand Up @@ -228,6 +229,7 @@ enum ASM_MODIFIERS {
#define _trn CONSTRUCT_FLAGS( 0, 0, _rspecial, 0x04 ) // TRn register (3-7)
#define _mm CONSTRUCT_FLAGS( 0, 0, _rspecial, 0x08 ) // MMn register (0-7)
#define _xmm CONSTRUCT_FLAGS( 0, 0, _rspecial, 0x10 ) // XMMn register (0-7)
#define _xmm0 CONSTRUCT_FLAGS( 0, 0, _rspecial, 0x20 ) // XMM0 register

//
// Default register values
Expand Down
Loading

0 comments on commit 7f5b070

Please sign in to comment.