-
- Downloads
[APX NDD] Disable seg_prefixed memory usage for NDD add
NDD uses evex prefix, so when segment prefix is also applied, the instruction could excceed its 15byte limit, especially adding immediates. This could happen when "e" constraint accepts any UNSPEC_TPOFF/UNSPEC_NTPOFF constant and it will add the offset to segment register, which will be encoded using segment prefix. Disable those *POFF constant usage in NDD add alternatives with new constraint. gcc/ChangeLog: * config/i386/constraints.md (je): New constraint. * config/i386/i386-protos.h (x86_poff_operand_p): New function to check any *POFF constant in operand. * config/i386/i386.cc (x86_poff_operand_p): New prototype. * config/i386/i386.md (*add<mode>_1): Split out je alternative for add.
Showing
- gcc/config/i386/constraints.md 5 additions, 0 deletionsgcc/config/i386/constraints.md
- gcc/config/i386/i386-protos.h 1 addition, 0 deletionsgcc/config/i386/i386-protos.h
- gcc/config/i386/i386.cc 25 additions, 0 deletionsgcc/config/i386/i386.cc
- gcc/config/i386/i386.md 4 additions, 4 deletionsgcc/config/i386/i386.md
Loading
Please register or sign in to comment