First set of licensing changes
[mono.git] / mono / arch / mips / mips-codegen.h
index e05bc38ac596ccc3915dd6a00ef8debb94560c24..c579c88a9b3a990a26afc0edaeac0c2da8693417 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (c) 2004 Novell, Inc
  * Author: Paolo Molaro (lupus@ximian.com)
  *
+ * Licensed under the MIT license. See LICENSE file in the project root for full license information.
  */
 
 /* registers */
@@ -193,21 +194,17 @@ enum {
 #define mips_format_r(code,op,rs,rt,rd,sa,func) mips_emit32 ((code), (((op)<<26)|((rs)<<21)|((rt)<<16)|((rd)<<11)|((sa)<<6)|(func)))
 #define mips_format_divmul(code,op,src1,src2,fun) mips_emit32 ((code), (((op)<<26)|((src1)<<21)|((src2)<<16)|(fun)))
 
-#define mips_is_imm16(val) ((gint)(val) >= (gint)-(1<<15) && (gint)(val) <= (gint)((1<<15)-1))
+#define mips_is_imm16(val) ((gint)(gshort)(gint)(val) == (gint)(val))
 
 /* Load always using lui/addiu pair (for later patching) */
 #define mips_load(c,D,v) do {  \
-               if (!mips_is_imm16 ((v)))       {       \
-                       if (((guint32)(v)) & (1 << 15)) {               \
-                               mips_lui ((c), (D), mips_zero, (((guint32)(v))>>16)+1); \
-                       } \
-                       else {                  \
-                               mips_lui ((c), (D), mips_zero, (((guint32)(v))>>16)); \
-                       }                                               \
-                       mips_addiu ((c), (D), (D), ((guint32)(v)) & 0xffff); \
-               }                                                       \
-               else                                                    \
-                       mips_addiu ((c), (D), mips_zero, ((guint32)(v)) & 0xffff); \
+               if (((guint32)(v)) & (1 << 15)) {                                                               \
+                       mips_lui ((c), (D), mips_zero, (((guint32)(v))>>16)+1);         \
+               }                                                                                                                               \
+               else {                                                                                                                  \
+                       mips_lui ((c), (D), mips_zero, (((guint32)(v))>>16));           \
+               }                                                                                                                               \
+               mips_addiu ((c), (D), (D), ((guint32)(v)) & 0xffff);                    \
        } while (0)
 
 /* load constant - no patch-up */
@@ -338,7 +335,7 @@ enum {
 /* misc and coprocessor ops */
 #define mips_move(c,dest,src) mips_addu(c,dest,src,mips_zero)
 #define mips_dmove(c,dest,src) mips_daddu(c,dest,src,mips_zero)
-#define mips_nop(c) mips_sll(c,0,0,0)
+#define mips_nop(c) mips_or(c,mips_at,mips_at,0)
 #define mips_break(c,code) mips_emit32(c, ((code)<<6)|13)
 #define mips_mfhi(c,dest) mips_format_r(c,0,0,0,dest,0,16)
 #define mips_mflo(c,dest) mips_format_r(c,0,0,0,dest,0,18)