Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/mty-makai/mty.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 46 by chapuni, Wed Mar 28 08:05:12 2007 UTC revision 74 by chapuni, Sun Apr 1 08:38:32 2007 UTC
# Line 38  Line 38 
38  #include "expr_parse.h"  #include "expr_parse.h"
39  #include "scoreboard.h"  #include "scoreboard.h"
40  #include "synth.h"  #include "synth.h"
41    #include "tr64.h"
42  #include "translate.h"  #include "translate.h"
43    
44  #if USE_DT  #if USE_DT
# Line 757  ALIGN_PREFIX(16) struct PARAM param64 AL Line 758  ALIGN_PREFIX(16) struct PARAM param64 AL
758  int  int
759  main(int argc, char *argv[])  main(int argc, char *argv[])
760  {  {
761    int i, j;    int i;
762    int mincnt;    int mincnt;
763    signed char *code = NULL;    signed char *code = NULL;
764    FILE *ofp;    FILE *ofp;
# Line 766  main(int argc, char *argv[]) Line 767  main(int argc, char *argv[])
767    int n_iter;    int n_iter;
768    int cr;    int cr;
769    
770      int xhash_loaded;
771    
772  #define N_TS 4  #define N_TS 4
773    struct    struct
774    {    {
# Line 877  main(int argc, char *argv[]) Line 880  main(int argc, char *argv[])
880  #endif  #endif
881    
882            /* ヒットしたときの処理 */            /* ヒットしたときの処理 */
883              xhash_loaded = 0;
884            for (kk = 0; kk < N_ALU; kk++)            for (kk = 0; kk < N_ALU; kk++)
885                  {                  {
886                    ALU_T t;                    ALU_T t;
887                      if (!(kk & 1))
888                            xhash_loaded = 0;
889    
890                    t = param64.t[31].a[kk];                    t = param64.t[31].a[kk];
891                    if (!t)                    if (!t)
# Line 887  main(int argc, char *argv[]) Line 893  main(int argc, char *argv[])
893    
894                    for (k = 0; k < ALU_BITS; k++)                    for (k = 0; k < ALU_BITS; k++)
895                          {                          {
896                              static uint64_t xhash[64];
897                            char hash[16];                            char hash[16];
898                            unsigned char buf[32];                            unsigned char buf[32];
899    
900                            if (!(t & ((ALU_T)1 << k)))                            if (!(t & ((ALU_T)1 << k)))
901                                  continue;                                  continue;
902    
903                            /* XXX 手抜きのため、ワークにはみ出ている 2 ビットをここで落とす                            /* 転置 */
904                                   ヒットするたびに冗長に行われるが、気にしてはいかん */                            if (!xhash_loaded)
905                            param64.t[0].a[kk] = param64.t[1].a[kk] = 0;                                  {
906                                      CALL_TR64(&param64.lr[0][0].q[kk >> 1], xhash);       /* XXX x64 ではダメ */
907                                      xhash_loaded = 1;
908                                    }
909    
910                              /* 辞書を調べる */
911                              if (!synth_dict_ishit(param64.hit, kk, k, xhash[(ALU_BITS * kk + k) & 0x3F]))
912                                    continue;
913    
914                            for (i = 1; i < 11; i++)                            for (i = 1; i < 11; i++)
915                                  {                                  {
916                                    unsigned c = 0;                                    unsigned c = 0;
917                                    for (j = 0; j < 6; j++)                                    c = (xhash[(ALU_BITS * kk + k) & 63] >> (6 * (i - 1))) & 0x3F;        /* XXX */
918                                          c = (c << 1) | !!(param64.lr[0][tr_fp[6 * i + j]].a[kk] & ((ALU_T)1 << k));                                    hash[i - 1] = C64[c];
                                   hash[i - 1] = c["./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];  
919                                  }                                  }
920                            hash[10] = 0;                            hash[10] = 0;
921    

Legend:
Removed from v.46  
changed lines
  Added in v.74

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26