This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Doubt in adding 23-bit instruction format in igen file


Hi,

We are facing the issue in adding the new instructions with 23-bit 
displacement to the igen file for a target. 

The instruction size is defined as 16 bits for the target in the igen file.
The new instructions that are to be added are of 48-bits. Also, the 23-bits 
displacement bits are not consecutively placed in the instruction opcode.

For example:

The instruction "xxx" has the following format 

    00000111100RRRRRwwwwwdddddd01111DDDDDDDDDDDDDDDD

    where
        dddddd is the lower side bits 6 to 1 of disp23.
        DDDDDDDDDDDDDDDD is the higher 16 bits of disp23.
    
Initially, I added the instruction format as shown.

00000111100,RRRRR,wwwww,dddddd,01111,DDDDDDDDDDDDDDDD:XIV:::xxx

When I build the GDB, it gave the following error:
    Bit position 20 exceed instruction bit size (16)

Then, I checked the other 32-bit instructions added in the igen file. 
In the similar way, I added the above instruction as follows:

    00000111100,RRRRR + wwwww,dddddd,01111 + DDDDDDDDDDDDDDDD:XIV:::xxx

Is the above format correct? Does the + symbol denote that the
'DDDDDDDDDDDDDDDD' should be added with opcode '01111'?

Can anyone please suggest the methods to add instructions formats having 
greater than 16-bits to the igen file?



Thanks in advance,
Rathish.C



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]