jilc-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Jilc-patches] CVS: jilc/src ilgenerator.h,NONE,1.1 ilopcodes.c,NONE,1.1


From: Gopal.V <address@hidden>
Subject: [Jilc-patches] CVS: jilc/src ilgenerator.h,NONE,1.1 ilopcodes.c,NONE,1.1 pewriter.h,NONE,1.1
Date: Wed, 29 May 2002 23:06:36 -0400

Update of /cvsroot/jilc/jilc/src
In directory subversions:/tmp/cvs-serv20087/src

Added Files:
        ilgenerator.h ilopcodes.c pewriter.h 
Log Message:
does this wokr ?


--- NEW FILE ---
/**
 * ilgenetaor.h:  Structure and method definitions for the IL bytecode
 *       generation.
 *
 * Author: Gaurav Vaish <address@hidden>
 *
 * (C) Gaurav Vaish, 2002
 *
 */

#ifndef __JILC_ILGENERATOR_H
#define __JILC_ILGENERATOR_H

#include <defines.h>

/**
 * The names and the structures given below are derived from the same/similar
 *  available at the mono compiler (http://www.go-mono.com)
 */

typedef struct
{
        const char *name;
        const char *culture;
        const char *hash_value;

        UInt32 hash_len;
        UInt32 flags;

        UInt16 major;
        UInt16 minor;
        UInt16 release;
        UInt16 build;
} il_assembly_name;

typedef struct
{
        int   ref_count;
        char *base_dir;

        il_assembly_name  name;
        il_image         *image;
        il_image         *modules;
} il_assembly;

typedef struct
{
        const char *data;
        UInt32      size;
} il_stream_header;

typedef struct
{
        UInt32 rows;
        UInt32 row_size;

        /**
         *  Tables contain up to 9 columns and the possible sizes of the fields 
in
         * the documentation are 1, 2 and 4 bytes.  So we can encode in 2 bits 
the
         * size.
         *
         * A 32 bit value can encode the resulting size.
         *
         *  The top eight bits encode the number of columns in the table we only
         * need 4, but 8 is aligned no shift required.
         */

        UInt32 size_bitfield;
} il_table_info;

typedef struct
{
        int         ref_count;
        FILE       *fp;
        char       *name;
        const char *assembly_name;

        char       *raw_metadata;

        BOOL        idx_string_wide;
        BOOL        idx_guid_wide;
        BOOL        idx_blob_wide;

        il_stream_header  heap_strings;
        il_stream_header  heap_us;
        il_stream_header  heap_blob;
        il_stream_header  heap_guid;
        il_stream_header  heap_tables;

        const char       *tables_base;
        il_table_info     tables[64];

        il_assembly     **references;
        il_assembly      *this_assembly;
} il_image;

#endif
--- NEW FILE ---
/**
 * ilopcodes.c -- IL opcodes.
 *
 * Author: Gaurav Vaish <address@hidden>
 *
 * (C) Gaurav Vaish, 2002
 */

#include <ilopcodes.h>

/**
 * Array of the il-opcodes that would be possible when converting
 * from a java-bytecode. The list does NOT contain all opcodes.
 */

ilcode_map il_map[] = {
};
--- NEW FILE ---
/**
 * pewriter.h -- Method definitions the for PE generator / IL bytecode writer.
 *
 * Author: Gaurav Vaish <address@hidden>
 *
 * (C) Gaurav Vaish : 2002
 *
 */

#ifndef __JILC_PEWRITER_H
#define __JILC_PEWRITER_H

#include <stdio.h>

/*
 * Methods to write the File Headers -> Metadata Root
 */

int write_magic(FILE *fp);
int write_major_version(FILE *fp);
int write_minor_version(FILE *fp);
int write_version_string(FILE *fp);
int write_stream_data(FILE *fp);

// int write_stream_data(FILE* fp, int count);

/*
 * Methods to write the File Headers -> Stream Headers
 */

int write_stream_offset(FILE *fp, int offset);
int write_stream_size(FILE *fp, int size);
int write_stream_name(FILE *fp, char *name);

/*
 *
 */

#endif



reply via email to

[Prev in Thread] Current Thread [Next in Thread]