mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-01 17:28:21 +00:00
Add another non-commutable instruction that gas accepts commuted forms for.
Fixes PR8861. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122641 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d34f19f7ba
commit
c00210cef2
@ -1465,14 +1465,15 @@ defm : FpUnaryAlias<"fucompi", UCOM_FIPr>;
|
||||
|
||||
|
||||
// Handle "f{mulp,addp} st(0), $op" the same as "f{mulp,addp} $op", since they
|
||||
// commute. We also allow fdivrp/fsubrp even though they don't commute, solely
|
||||
// because gas supports it.
|
||||
// commute. We also allow fdiv[r]p/fsubrp even though they don't commute,
|
||||
// solely because gas supports it.
|
||||
def : InstAlias<"faddp %st(0), $op", (ADD_FPrST0 RST:$op)>;
|
||||
def : InstAlias<"fmulp %st(0), $op", (MUL_FPrST0 RST:$op)>;
|
||||
def : InstAlias<"fsubrp %st(0), $op", (SUB_FPrST0 RST:$op)>;
|
||||
def : InstAlias<"fdivp %st(0), $op", (DIVR_FPrST0 RST:$op)>;
|
||||
def : InstAlias<"fdivrp %st(0), $op", (DIV_FPrST0 RST:$op)>;
|
||||
|
||||
// We accepts "fnstsw %eax" even though it only writes %ax.
|
||||
// We accept "fnstsw %eax" even though it only writes %ax.
|
||||
def : InstAlias<"fnstsw %eax", (FNSTSW8r)>;
|
||||
def : InstAlias<"fnstsw %al" , (FNSTSW8r)>;
|
||||
def : InstAlias<"fnstsw" , (FNSTSW8r)>;
|
||||
|
@ -504,6 +504,10 @@ fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
|
||||
fsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
|
||||
fsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
|
||||
|
||||
// also PR8861
|
||||
fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
|
||||
fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
|
||||
|
||||
|
||||
movl foo(%rip), %eax
|
||||
// CHECK: movl foo(%rip), %eax
|
||||
|
Loading…
Reference in New Issue
Block a user