Changeset 828 in dev for trunk/ab5.0/abdev/compiler_x64


Ignore:
Timestamp:
Mar 19, 2012, 1:59:48 AM (12 years ago)
Author:
イグトランス (egtra)
Message:

egtraブランチの内容をマージ。

Location:
trunk
Files:
2 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/ab5.0/abdev

    • Property svn:ignore set to
      *.opensdf
      *.sdf
      *.suo
      *.user
      int
      ipch
      out
  • trunk/ab5.0/abdev/compiler_x64/MakePeHdr.cpp

    r769 r828  
    166166            compiler.GetObjectModule().meta.GetDelegates()
    167167        );
    168         compiler.GetObjectModule().meta.GetDelegates().Iterator_Init();
    169168
    170169        // デリゲートからクラスコードを生成
     
    219218    );
    220219
    221     // サブルーチン(ユーザー定義、DLL関数)のイテレータの準備
    222     compiler.GetObjectModule().meta.GetUserProcs().Iterator_Init();
    223     compiler.GetObjectModule().meta.GetDllProcs().Iterator_Init();
    224 
    225220
    226221    ///////////////////////////
     
    527522        }
    528523    }
    529     compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
    530     while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
    531     {
    532         const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    533 
     524    foreach (auto const* pDllProc, compiler.GetObjectModule().meta.GetDllProcs() )
     525    {
    534526        if( !pDllProc->IsUsing() ){
    535527            continue;
     
    601593            //辞書順にサーチ
    602594            temporary[0]=0;
    603             compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
    604             while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
     595            foreach (auto pTempUserProc, compiler.GetObjectModule().meta.GetUserProcs())
    605596            {
    606                 UserProc *pTempUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext();
    607597                if(pTempUserProc->IsExport()){
    608598                    if(temporary[0]=='\0'){
     
    707697    int ImportDllNum=0;
    708698
    709     compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
    710     while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
    711     {
    712         const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    713 
     699    foreach (auto const* pDllProc, compiler.GetObjectModule().meta.GetDllProcs())
     700    {
    714701        if( !pDllProc->IsUsing() ){
    715702            continue;
     
    745732        pImportDescriptor[i].Name=i*0x10;   //※すぐ下で再計算
    746733
    747         compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
    748         while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
     734        foreach (auto const* pDllProc, compiler.GetObjectModule().meta.GetDllProcs())
    749735        {
    750             const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    751 
    752736            if( !pDllProc->IsUsing() ){
    753737                continue;
     
    782766    pHintTable=(char *)HeapAlloc(hHeap,0,HintAllocSize);
    783767    for(i=0,i5=0;i<ImportDllNum;i++){
    784         compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
    785         while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
     768        foreach (auto pDllProc, compiler.GetObjectModule().meta.GetDllProcs())
    786769        {
    787             DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    788 
    789770            if( !pDllProc->IsUsing() ){
    790771                continue;
     
    10711052            LookupSize;         //ルックアップテーブル
    10721053
    1073         compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset();
    1074         while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() )
     1054        foreach (auto const* pDllProc, compiler.GetObjectModule().meta.GetDllProcs())
    10751055        {
    1076             const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext();
    1077 
    10781056            if( !pDllProc->IsUsing() ){
    10791057                continue;
  • trunk/ab5.0/abdev/compiler_x64/Opcode.h

    r704 r828  
    11#pragma once
     2
     3#include <array>
    24
    35#include "MachineFixed.h"
     
    3739        , sourceCodePos( sourceCodePos )
    3840    {
     41    }
     42
     43    WithInfo(WithInfo&& y)
     44        : name(std::move(y.name))
     45        , sourceCodePos(std::move(y.sourceCodePos))
     46    {
     47    }
     48
     49    WithInfo(WithInfo const& y)
     50        : name(y.name)
     51        , sourceCodePos(y.sourceCodePos)
     52    {
     53    }
     54
     55    WithInfo& operator =(WithInfo&& y)
     56    {
     57        name = std::move(y.name);
     58        sourceCodePos = std::move(y.sourceCodePos);
     59        return *this;
     60    }
     61
     62    WithInfo& operator =(WithInfo const& y)
     63    {
     64        return *this = std::move(WithInfo(y));
    3965    }
    4066};
     
    75101
    76102    void error_check(void);
     103
     104private:
     105    StackFrame(StackFrame const&);
     106    StackFrame& operator =(StackFrame const&);
    77107};
    78108extern StackFrame *pobj_sf;
     
    93123    void backup();
    94124    void restore();
     125
     126private:
     127    CBlockReg(CBlockReg const&);
     128    CBlockReg& operator =(CBlockReg const&);
    95129};
    96130extern CBlockReg *pobj_BlockReg;
     
    101135
    102136    //利用可能なレジスタを列挙する関数
    103     void EnumRegister(int *pRegList,int nMaxList,int *array_reg,int *sp,int AnswerReg);
    104 
    105     int array_UseReg[16],sp_UseReg;
    106 
    107     int array_XmmReg[16];
     137    void EnumRegister(int const *pRegList,int nMaxList,int *array_reg,int *sp,int AnswerReg);
     138
     139    std::array<int, 16> array_UseReg;
     140    int sp_UseReg;
     141
     142    std::array<int, 16> array_XmmReg;
    108143    int sp_XmmReg;
    109144
     
    113148    CRegister(){};
    114149    CRegister(int AnswerReg);
     150   
     151    CRegister(CRegister const& y)
     152        : array_UseReg(y.array_UseReg)
     153        , sp_UseReg(y.sp_UseReg)
     154        , array_XmmReg(y.array_XmmReg)
     155        , sp_XmmReg(y.sp_XmmReg)
     156        , init_sp_reg(y.init_sp_reg)
     157        , init_sp_xmm_reg(y.init_sp_xmm_reg)
     158    {
     159    }
     160
     161    CRegister& operator =(CRegister const& y)
     162    {
     163        array_UseReg = y.array_UseReg;
     164        sp_UseReg = y.sp_UseReg;
     165        array_XmmReg = y.array_XmmReg;
     166        sp_XmmReg = y.sp_XmmReg;
     167        init_sp_reg = y.init_sp_reg;
     168        init_sp_xmm_reg = y.init_sp_xmm_reg;
     169        return *this;
     170    }
     171
    115172    ~CRegister(){};
    116173
     
    313370    void BackupParameter(int pi_num);
    314371    void RestoreParameter(int pi_num);
     372
     373private:
     374    ParamImpl(ParamImpl const&);
     375    ParamImpl& operator =(ParamImpl const&);
    315376};
    316377
     
    325386    void lock(int level);
    326387    void unlock(int level);
     388
     389private:
     390    CDBLockParms(CDBLockParms const&);
     391    CDBLockParms& operator =(CDBLockParms const&);
    327392};
    328393
  • trunk/ab5.0/abdev/compiler_x64/Register.cpp

    r468 r828  
    112112CRegister *pobj_reg;
    113113
    114 void CRegister::EnumRegister(int *pRegList,int nMaxList,int *array_reg,int *sp,int AnswerReg){
     114void CRegister::EnumRegister(int const* pRegList,int nMaxList,int *array_reg,int *sp,int AnswerReg){
    115115    int i,i2,sw=0;
    116116
     
    161161
    162162    EnumRegister(
    163         (int *)CalculationRegister,
     163        CalculationRegister,
    164164        sizeof(CalculationRegister)/sizeof(int),
    165         array_UseReg,
     165        array_UseReg.data(),
    166166        &sp_UseReg,
    167167        AnswerReg);
     
    174174
    175175    EnumRegister(
    176         (int *)CalculationXmmRegister,
     176        CalculationXmmRegister,
    177177        sizeof(CalculationXmmRegister)/sizeof(int),
    178         array_XmmReg,
     178        array_XmmReg.data(),
    179179        &sp_XmmReg,
    180180        AnswerReg);
  • trunk/ab5.0/abdev/compiler_x64/manifest.xml

    r3 r828  
    11<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    22<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    3 <assemblyIdentity
    4 version="1.0.0.0"
    5 processorArchitecture="amd64"
    6 name="BasicCompiler64.exe"
    7 type="win32"
    8 />
    9 <description>Description</description>
    10 <dependency>
    11 <dependentAssembly>
    12 <assemblyIdentity
    13 type="win32"
    14 name="Microsoft.Windows.Common-Controls"
    15 version="6.0.0.0"
    16 processorArchitecture="amd64"
    17 publicKeyToken="6595b64144ccf1df"
    18 language="*"
    19 />
    20 </dependentAssembly>
    21 </dependency>
    22 </assembly>
     3    <assemblyIdentity
     4        version="1.0.0.0"
     5        processorArchitecture="amd64"
     6        name="Discoversoft.ActiveBasic.BasicCompiler"
     7        type="win32"/>
     8    <description>BasicCompiler (amd64)</description>
     9    </assembly>
Note: See TracChangeset for help on using the changeset viewer.