changeset 1086:56e364ba346c

Merging
author Kelly Wilson <wilsonk cpsc.ucalgary.ca>
date Tue, 10 Mar 2009 11:08:35 -0600
parents 8cb5b746500c (current diff) 56e56b3b9bb8 (diff)
children b1d75bf46ffa
files
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/gen/asm-x86-32.h	Tue Mar 10 11:06:38 2009 -0600
+++ b/gen/asm-x86-32.h	Tue Mar 10 11:08:35 2009 -0600
@@ -449,7 +449,7 @@
         /* Op_Fis_ST    */  {   mem, 0,    0,    FPInt_Types, Clb_ST }, // "
         /* Op_Fis_P     */  {   mem, 0,    0,    FPInt_Types, Clb_ST }, // push and pop, fild so also 64 bit
         /* Op_Fid       */  { D|mem, 0,    0,    FPInt_Types }, // only 16bit and 32bit, DMD defaults to 16bit
-        /* Op_Fid_P     */  { D|mem, 0,    0,    FPInt_Types, Clb_ST }, // push and pop, fild so also 64 bit
+        /* Op_Fid_P     */  { D|mem, 0,    0,    FPInt_Types, Clb_ST, Op_FfdRR_P }, // push and pop, fild so also 64 bit
         /* Op_Ffd       */  { D|mfp, 0,    0,    FP_Types, 0, Next_Form, Op_FfdR }, // only 16bit and 32bit, DMD defaults to 16bit, reg form doesn't need type
         /* Op_FfdR      */  { D|rfp, 0,    0  },
         /* Op_Ffd_P     */  { D|mfp, 0,    0,    FP_Types, Clb_ST, Next_Form, Op_FfdR_P }, // pop, fld so also 80 bit, "
@@ -1377,7 +1377,15 @@
                 }
 
                 if ( token->value == TOKcomma )
+                {
                     nextToken();
+                }
+		else if ( token->value == TOKint16 || token->value == TOKint32 )
+                {
+		    //throw away the 'short' in "jle short label;". Works for 'long' also.
+		    operands[0] = operands[1];
+                    return;
+                }
                 else if ( token->value != TOKeof )
                 {
                     ok = false;
@@ -2784,6 +2792,10 @@
                     ident = Id::__dollar;
                     goto do_dollar;
                     break;
+	        case TOKint16:
+	        case TOKint32:
+		    //This if for the 'short' in "jle short Label;"
+		    return Handled;
                 default:
                     invalidExpression();
                     return Handled;