convert_floating_point_to_gpr_integer.py (6519:36369ba5fad6) | convert_floating_point_to_gpr_integer.py (6606:03fd282998d0) |
---|---|
1# Copyright (c) 2007 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# Redistribution and use of this software in source and binary forms, 5# with or without modification, are permitted provided that the 6# following conditions are met: 7# 8# The software must be used only for Non-Commercial Use which means any --- 40 unchanged lines hidden (view full) --- 49# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 50# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 53# 54# Authors: Gabe Black 55 56microcode = ''' | 1# Copyright (c) 2007 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# Redistribution and use of this software in source and binary forms, 5# with or without modification, are permitted provided that the 6# following conditions are met: 7# 8# The software must be used only for Non-Commercial Use which means any --- 40 unchanged lines hidden (view full) --- 49# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 50# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 53# 54# Authors: Gabe Black 55 56microcode = ''' |
57# CVTSS2SI 58# CVTSD2SI 59# CVTTSS2SI | 57def macroop CVTSS2SI_R_XMM { 58 cvtf2i ufp1, xmmlm, srcSize=4, destSize=dsz, ext=(1 | 4) 59 mov2int reg, ufp1, size=dsz 60}; |
60 | 61 |
62def macroop CVTSS2SI_R_M { 63 ldfp ufp1, seg, sib, disp, dataSize=8 64 cvtf2i ufp1, ufp1, srcSize=4, destSize=dsz, ext=(1 | 4) 65 mov2int reg, ufp1, size=dsz 66}; 67 68def macroop CVTSS2SI_R_P { 69 rdip t7 70 ldfp ufp1, seg, riprel, disp, dataSize=8 71 cvtf2i ufp1, ufp1, srcSize=4, destSize=dsz, ext=(1 | 4) 72 mov2int reg, ufp1, size=dsz 73}; 74 75def macroop CVTSD2SI_R_XMM { 76 cvtf2i ufp1, xmmlm, srcSize=8, destSize=dsz, ext=(1 | 4) 77 mov2int reg, ufp1, size=dsz 78}; 79 80def macroop CVTSD2SI_R_M { 81 ldfp ufp1, seg, sib, disp, dataSize=8 82 cvtf2i ufp1, ufp1, srcSize=8, destSize=dsz, ext=(1 | 4) 83 mov2int reg, ufp1, size=dsz 84}; 85 86def macroop CVTSD2SI_R_P { 87 rdip t7 88 ldfp ufp1, seg, riprel, disp, dataSize=8 89 cvtf2i ufp1, ufp1, srcSize=8, destSize=dsz, ext=(1 | 4) 90 mov2int reg, ufp1, size=dsz 91}; 92 93def macroop CVTTSS2SI_R_XMM { 94 cvtf2i ufp1, xmmlm, srcSize=4, destSize=dsz, ext=1 95 mov2int reg, ufp1, size=dsz 96}; 97 98def macroop CVTTSS2SI_R_M { 99 ldfp ufp1, seg, sib, disp, dataSize=8 100 cvtf2i ufp1, ufp1, srcSize=4, destSize=dsz, ext=1 101 mov2int reg, ufp1, size=dsz 102}; 103 104def macroop CVTTSS2SI_R_P { 105 rdip t7 106 ldfp ufp1, seg, riprel, disp, dataSize=8 107 cvtf2i ufp1, ufp1, srcSize=4, destSize=dsz, ext=1 108 mov2int reg, ufp1, size=dsz 109}; 110 |
|
61def macroop CVTTSD2SI_R_XMM { | 111def macroop CVTTSD2SI_R_XMM { |
62 cvtf_d2i reg, xmmlm | 112 cvtf2i ufp1, xmmlm, srcSize=8, destSize=dsz, ext=1 113 mov2int reg, ufp1, size=dsz |
63}; 64 65def macroop CVTTSD2SI_R_M { 66 ldfp ufp1, seg, sib, disp, dataSize=8 | 114}; 115 116def macroop CVTTSD2SI_R_M { 117 ldfp ufp1, seg, sib, disp, dataSize=8 |
67 cvtf_d2i reg, ufp1 | 118 cvtf2i ufp1, ufp1, srcSize=8, destSize=dsz, ext=1 119 mov2int reg, ufp1, size=dsz |
68}; 69 70def macroop CVTTSD2SI_R_P { 71 rdip t7 72 ldfp ufp1, seg, riprel, disp, dataSize=8 | 120}; 121 122def macroop CVTTSD2SI_R_P { 123 rdip t7 124 ldfp ufp1, seg, riprel, disp, dataSize=8 |
73 cvtf_d2i reg, ufp1 | 125 cvtf2i ufp1, ufp1, srcSize=8, destSize=dsz, ext=1 126 mov2int reg, ufp1, size=dsz |
74}; 75''' | 127}; 128''' |