Skip to content

Load Vector Element Integer Indexed instructions seems to be broken #2200

Open
@Goatman13

Description

@Goatman13

Validation

Describe what's going wrong

Opcodes lvebx/lvehx/lvewx seems to use wrong ea alignment. According to Altivec manual b/h/w should have ea byte/half/word alignment, while ppc_emit_altivec.cc align ea to quadword for them. Additionally i'm not really sure if whole implementation is correct at all, because it seems to load whole 128 bits from address instead of byte/half/word.

Sorry i'm not familiar with this emitter or with x360 cpu at all, so this issue could be invalid. But looking at store implementations of those opcodes, loads just seems to do wrong thing.

That also should explain #746 "V524 ppc_emit_altivec.cc 73,81 It is odd that the body of 'InstrEmit_lvehx' function is fully equivalent to the body of 'InstrEmit_lvebx' function".

Describe what should happen

Assuming that i'm correct, instructions should load byte/half/word integers from correctly aligned addresses.

If applicable, provide a callstack here, especially for crashes

No response

If applicable, upload a logfile and link it here

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions