segmentation.py (5683:e1a1d8bba254) segmentation.py (5902:7a323daa3df2)
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

--- 154 unchanged lines hidden (view full) ---

163 ld t1, seg, riprel, disp, dataSize=2
164 # Get the base
165 ld t2, seg, riprel, 'adjustedDisp + 2', dataSize=4
166 zexti t2, t2, 23
167 wrbase idtr, t2
168 wrlimit idtr, t1
169};
170
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

--- 154 unchanged lines hidden (view full) ---

163 ld t1, seg, riprel, disp, dataSize=2
164 # Get the base
165 ld t2, seg, riprel, 'adjustedDisp + 2', dataSize=4
166 zexti t2, t2, 23
167 wrbase idtr, t2
168 wrlimit idtr, t1
169};
170
171def macroop LTR_R
172{
173 chks reg, t0, TRCheck
174 limm t4, 0
175 srli t4, reg, 3, dataSize=2
176 ldst t1, tsg, [8, t4, t0], dataSize=8
177 ld t2, tsg, [8, t4, t0], 8, dataSize=8
178 chks reg, t1, TSSCheck
179 wrdh t3, t1, t2
180 wrdl tr, t1, reg
181 wrbase tr, t3, dataSize=8
182 ori t1, t1, (1 << 9)
183 st t1, tsg, [8, t4, t0], dataSize=8
184};
185
186def macroop LTR_M
187{
188 ld t5, seg, sib, disp, dataSize=2
189 chks t5, t0, TRCheck
190 limm t4, 0
191 srli t4, t5, 3, dataSize=2
192 ldst t1, tsg, [8, t4, t0], dataSize=8
193 ld t2, tsg, [8, t4, t0], 8, dataSize=8
194 chks t5, t1, TSSCheck
195 wrdh t3, t1, t2
196 wrdl tr, t1, t5
197 wrbase tr, t3, dataSize=8
198 ori t1, t1, (1 << 9)
199 st t1, tsg, [8, t4, t0], dataSize=8
200};
201
202def macroop LTR_P
203{
204 rdip t7
205 ld t5, seg, riprel, disp, dataSize=2
206 chks t5, t0, TRCheck
207 limm t4, 0
208 srli t4, t5, 3, dataSize=2
209 ldst t1, tsg, [8, t4, t0], dataSize=8
210 ld t2, tsg, [8, t4, t0], 8, dataSize=8
211 chks t5, t1, TSSCheck
212 wrdh t3, t1, t2
213 wrdl tr, t1, t5
214 wrbase tr, t3, dataSize=8
215 ori t1, t1, (1 << 9)
216 st t1, tsg, [8, t4, t0], dataSize=8
217};
218
171def macroop SWAPGS
172{
173 rdval t1, kernel_gs_base, dataSize=8
174 rdbase t2, gs, dataSize=8
175 wrbase gs, t1, dataSize=8
176 wrval kernel_gs_base, t2, dataSize=8
177};
178'''
219def macroop SWAPGS
220{
221 rdval t1, kernel_gs_base, dataSize=8
222 rdbase t2, gs, dataSize=8
223 wrbase gs, t1, dataSize=8
224 wrval kernel_gs_base, t2, dataSize=8
225};
226'''