* config/tc-mips.c (mips16_macro): Add case for M_ABS.
authorIan Lance Taylor <ian@airs.com>
Mon, 30 Dec 1996 16:36:37 +0000 (16:36 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 30 Dec 1996 16:36:37 +0000 (16:36 +0000)
gas/ChangeLog
gas/config/tc-mips.c

index 7c34c07f10ebb5a1bc7bd6d3f33e59d359635f88..2fb674d71e42daadb9af3f08a13eafe80a47fff8 100644 (file)
@@ -1,3 +1,7 @@
+Mon Dec 30 11:35:40 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * config/tc-mips.c (mips16_macro): Add case for M_ABS.
+
 Fri Dec 27 22:51:51 1996  Fred Fish  <fnf@cygnus.com>
 
        * NOTES.config (Implementation): as.h #define's "GAS" not "gas",
index d90c7e6590f3acbf4eabadd667badb76f4d4025f..d4bd7c68790597fbee6353a5724bff66e0fcdc67 100644 (file)
@@ -5973,6 +5973,17 @@ mips16_macro (ip)
       macro_build ((char *) NULL, &icnt, &imm_expr, s, s3, xreg);
       macro_build ((char *) NULL, &icnt, &offset_expr, s2, "p");
       break;
+
+    case M_ABS:
+      expr1.X_add_number = 0;
+      macro_build ((char *) NULL, &icnt, &expr1, "slti", "x,8",  yreg);
+      if (xreg != yreg)
+       macro_build ((char *) NULL, &icnt, (expressionS *) NULL,
+                    "move", "y,X", xreg, yreg);
+      expr1.X_add_number = 2;
+      macro_build ((char *) NULL, &icnt, &expr1, "bteqz", "p");
+      macro_build ((char *) NULL, &icnt, (expressionS *) NULL,
+                  "neg", "x,w", xreg, xreg);
     }
 }