mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-14 17:34:41 +00:00
Use target independent COPY instructions for the fake fextend and fround
operations in x87 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108098 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4cae5af54e
commit
a66450d227
@ -680,19 +680,19 @@ def : Pat<(X86fildflag addr:$src, i64), (ILD_Fp64m64 addr:$src)>;
|
||||
|
||||
// FP extensions map onto simple pseudo-value conversions if they are to/from
|
||||
// the FP stack.
|
||||
def : Pat<(f64 (fextend RFP32:$src)), (MOV_Fp3264 RFP32:$src)>,
|
||||
def : Pat<(f64 (fextend RFP32:$src)), (COPY_TO_REGCLASS RFP32:$src, RFP64)>,
|
||||
Requires<[FPStackf32]>;
|
||||
def : Pat<(f80 (fextend RFP32:$src)), (MOV_Fp3280 RFP32:$src)>,
|
||||
def : Pat<(f80 (fextend RFP32:$src)), (COPY_TO_REGCLASS RFP32:$src, RFP80)>,
|
||||
Requires<[FPStackf32]>;
|
||||
def : Pat<(f80 (fextend RFP64:$src)), (MOV_Fp6480 RFP64:$src)>,
|
||||
def : Pat<(f80 (fextend RFP64:$src)), (COPY_TO_REGCLASS RFP64:$src, RFP80)>,
|
||||
Requires<[FPStackf64]>;
|
||||
|
||||
// FP truncations map onto simple pseudo-value conversions if they are to/from
|
||||
// the FP stack. We have validated that only value-preserving truncations make
|
||||
// it through isel.
|
||||
def : Pat<(f32 (fround RFP64:$src)), (MOV_Fp6432 RFP64:$src)>,
|
||||
def : Pat<(f32 (fround RFP64:$src)), (COPY_TO_REGCLASS RFP64:$src, RFP32)>,
|
||||
Requires<[FPStackf32]>;
|
||||
def : Pat<(f32 (fround RFP80:$src)), (MOV_Fp8032 RFP80:$src)>,
|
||||
def : Pat<(f32 (fround RFP80:$src)), (COPY_TO_REGCLASS RFP80:$src, RFP32)>,
|
||||
Requires<[FPStackf32]>;
|
||||
def : Pat<(f64 (fround RFP80:$src)), (MOV_Fp8064 RFP80:$src)>,
|
||||
def : Pat<(f64 (fround RFP80:$src)), (COPY_TO_REGCLASS RFP80:$src, RFP64)>,
|
||||
Requires<[FPStackf64]>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user