segmentation.py (5930:ec124ac0984b) segmentation.py (5937:177534612ec0)
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

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

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
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

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

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
219def macroop LLDT_R
220{
221 chks reg, t0, InGDTCheck, flags=(EZF,)
222 br label("end"), flags=(CEZF,)
223 limm t4, 0
224 srli t4, reg, 3, dataSize=2
225 ldst t1, tsg, [8, t4, t0], dataSize=8
226 ld t2, tsg, [8, t4, t0], 8, dataSize=8
227 chks reg, t1, LDTCheck
228 wrdh t3, t1, t2
229 wrdl tr, t1, reg
230 wrbase tr, t3, dataSize=8
231end:
232 fault "NoFault"
233};
234
235def macroop LLDT_M
236{
237 ld t5, seg, sib, disp, dataSize=2
238 chks t5, t0, InGDTCheck, flags=(EZF,)
239 br label("end"), flags=(CEZF,)
240 limm t4, 0
241 srli t4, t5, 3, dataSize=2
242 ldst t1, tsg, [8, t4, t0], dataSize=8
243 ld t2, tsg, [8, t4, t0], 8, dataSize=8
244 chks t5, t1, LDTCheck
245 wrdh t3, t1, t2
246 wrdl tr, t1, t5
247 wrbase tr, t3, dataSize=8
248end:
249 fault "NoFault"
250};
251
252def macroop LLDT_P
253{
254 rdip t7
255 ld t5, seg, riprel, disp, dataSize=2
256 chks t5, t0, InGDTCheck, flags=(EZF,)
257 br label("end"), flags=(CEZF,)
258 limm t4, 0
259 srli t4, t5, 3, dataSize=2
260 ldst t1, tsg, [8, t4, t0], dataSize=8
261 ld t2, tsg, [8, t4, t0], 8, dataSize=8
262 chks t5, t1, LDTCheck
263 wrdh t3, t1, t2
264 wrdl tr, t1, t5
265 wrbase tr, t3, dataSize=8
266end:
267 fault "NoFault"
268};
269
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'''
270def macroop SWAPGS
271{
272 rdval t1, kernel_gs_base, dataSize=8
273 rdbase t2, gs, dataSize=8
274 wrbase gs, t1, dataSize=8
275 wrval kernel_gs_base, t2, dataSize=8
276};
277'''