Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zcb: Code Size Reduction Extension #3362

Open
wants to merge 8 commits into
base: dev
Choose a base branch
from

Commits on May 21, 2023

  1. Added Zcb Opcodes for Quadrant 0

    - Zcb Instructions with `OP[1:0] = 2'b0` added.
    - These are Compressed version of following I-type instructins.
    	- lbu
    	- lhu
    	- lh
    	- sb
    	- sh
    - These instructions lies in Quadrant 0 based on compressed Opcode.
    
    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed May 21, 2023
    Configuration menu
    Copy the full SHA
    e160e98 View commit details
    Browse the repository at this point in the history
  2. Added Support of Q0 Zcb Instructions.

    - Implement the 16 to 32 bit Decoder for `Zcb` Instructions having OP[1:0] == 00
    - This decodes the following compressed instructions into its 32-bit equivalent instructions.
    	c.lbu, c.lhu, c.lh, c.cb, c.sh
    
    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed May 21, 2023
    Configuration menu
    Copy the full SHA
    b943cfb View commit details
    Browse the repository at this point in the history
  3. Added Zcb Opcodes for Quadrant 1

    - Zcb Instructions with `OP[1:0] = 2'b01` added.
    - These instructions lies in Q1 of Compressed Instructions.
    
    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed May 21, 2023
    Configuration menu
    Copy the full SHA
    face7de View commit details
    Browse the repository at this point in the history
  4. Added support of Q1 Zcb Instructions.

    - Implement the 16 to 32 bit Decoder for `Zcb` Instructions having OP[1:0] = 2'b01
    - The 16 bit -> 32 bit instruction mapping is given as follows:
    	c.zext.b -> andi
    	c.sext.b -> sext.b   (require Zbb)
    	c.zext.h -> zext.h   (require Zbb)
    	c.sext.h -> sext.h   (require Zbb)
    	c.zext.w -> add.uw   (require Zba, only for RV64)
    	c.not    -> xori
    	c.mul    -> mul      (Require M standard extension)
    
    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed May 21, 2023
    Configuration menu
    Copy the full SHA
    323d57d View commit details
    Browse the repository at this point in the history

Commits on May 29, 2023

  1. Parameterized the Zcb extension

    - Added `usingCompressedSuiteB` to enable/disable `Zcb` extension.
    - This parameter depends upon existing `usingCompressed` parameter.
    - By default `Zcb` is disable in RocketCore.
    - Passed this parameter along with `usingBitManip` and `usingMulDiv` to RVCDecoder enable/disable the decoding of corresponding `Zcb` instructions.
    
    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed May 29, 2023
    Configuration menu
    Copy the full SHA
    4a67839 View commit details
    Browse the repository at this point in the history
  2. Added Decription for RVCDecoder Parameters

    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed May 29, 2023
    Configuration menu
    Copy the full SHA
    98064d1 View commit details
    Browse the repository at this point in the history
  3. Added zca and zcb in Device Tree Source

    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed May 29, 2023
    Configuration menu
    Copy the full SHA
    0ebed64 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. Optimization: Update RVC.scala for zcb instructions

    Signed-off-by: Abdul Wadood <[email protected]>
    Abdulwadoodd committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    05ee78a View commit details
    Browse the repository at this point in the history