Bug 182190 - ARM64 assembler should use optionally-shifted immediate values
Summary: ARM64 assembler should use optionally-shifted immediate values
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-26 15:27 PST by JF Bastien
Modified: 2020-01-24 09:18 PST (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description JF Bastien 2018-01-26 15:27:09 PST
Right now it knows about uint12 immediate values (and their negative equivalents) but doesn't know about the optional shift:

  case shift of
      when '00' imm = ZeroExtend(imm12, datasize);
      when '01' imm = ZeroExtend(imm12:Zeros(12), datasize); // <--- THIS
      when '1x' ReservedValue();

This exists in add and sub at a minimum. Look at all opcodes which have this optional shift, and teach the ARM64 assembler to use them!