예제 #1
0
        private InstructionPayload ComposeLoad(Instruction ins, RvcPayload payload)
        {
            // Set the opcode, type and coding
            InstructionPayload p = new InstructionPayload(ins, payload.Coding);

            if (payload.Op == 2 && payload.Funct3 == CLWSP)
            {
                parser32.ParseLwSp(payload, p);
            }

            if (payload.Op == 2 && payload.Funct3 == CLDSP)
            {
                parser64.ParseLdSp(payload, p);
            }

            if (payload.Op == 0 && payload.Funct3 == CLW)
            {
                parser32.ParseLw(payload, p);
            }

            if (payload.Op == 0 && payload.Funct3 == CLD)
            {
                parser64.ParseLd(payload, p);
            }

            return(p);
        }
예제 #2
0
        private InstructionPayload ComposeLoad(Instruction ins, RvcPayload payload)
        {
            // Set the opcode, type and coding
            InstructionPayload p = new InstructionPayload(ins, payload.Coding);


            if (payload.Op == 0 && payload.Funct3 == CLW)
            {
                parser32.ParseLw(payload, p);
            }

            // Now do the rest according to the F3 type
            if (payload.Op == 2 && payload.Funct3 == CLWSP)
            {
                parser32.ParseLwSp(payload, p);
            }

            return(p);
        }