Skip to content

Incorrect ScInstr attribute for IMULH_R & ISMULH_R #33

@Boog900

Description

@Boog900

Mithril sets group_par_is_source to true for IMULH_R & ISMULH_R and does not set can_reuses to true

ScOpcode::IMULH_R => ScInstr {
info,
dst: -1,
src: -1,
mod_v: 0,
imm32: 0,
op_group: ScOpcode::IMULH_R,
group_par_is_source: true,
can_reuse: false,
op_group_par: gen.get_u32() as i32,
},
ScOpcode::ISMULH_R => ScInstr {
info,
dst: -1,
src: -1,
mod_v: 0,
imm32: 0,
op_group: ScOpcode::ISMULH_R,
group_par_is_source: true,
can_reuse: false,
op_group_par: gen.get_u32() as i32,

This is different to the reference implementation:

https://github.com/tevador/RandomX/blob/1c603a23fa0004615b4f2d42ad95f2693f16093b/src/superscalar.cpp#L465-L480

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions