"MOV_INT64" in this patch is converting short int32 to long int64, maybe its 
name should be "CONVERT_INT64". As you see, in this patch, I also add 
converting code. I will do the code renaming.

From: zhigang gong [mailto:zhigang.g...@gmail.com]
Sent: Wednesday, August 7, 2013 4:04 PM
To: Xing, Homer
Cc: beignet@lists.freedesktop.org
Subject: Re: [Beignet] [PATCH 1/2] support 64bit-integer shifting

Homer,

One quick comment for this patch, please see the following change:

@@ -2169,6 +2247,8 @@ namespace gbe
       } else if (dst.isdf()) {
         ir::Register r = sel.reg(ir::RegisterFamily::FAMILY_QWORD);
         sel.MOV_DF(dst, src, sel.selReg(r));
+      } else if (dst.isint64()) {
+        sel.MOV_INT64(dst, src);
       } else
         sel.MOV(dst, src);
       return true;

Here, what we want to do is to convert a different data type to int64 type.
But according to your previous patch, MOV_INT64 is used to move two
int64 type registers, right? So I think it may not be correct, and you may
need to add a new instruction to handle similar CVT instruction as MOV_DF
or you can extent MOV_DF to support int64 too. Any idea?


_______________________________________________
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to