segmentation.py (5937:177534612ec0) segmentation.py (6062:2116d308076f)
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

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

166 zexti t2, t2, 23, dataSize=8
167 wrbase idtr, t2
168 wrlimit idtr, t1
169};
170
171def macroop LTR_R
172{
173 chks reg, t0, TRCheck
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

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

166 zexti t2, t2, 23, dataSize=8
167 wrbase idtr, t2
168 wrlimit idtr, t1
169};
170
171def macroop LTR_R
172{
173 chks reg, t0, TRCheck
174 limm t4, 0
174 limm t4, 0, dataSize=8
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
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
190 limm t4, 0, dataSize=8
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
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
207 limm t4, 0, dataSize=8
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
219def macroop LLDT_R
220{
221 chks reg, t0, InGDTCheck, flags=(EZF,)
222 br label("end"), flags=(CEZF,)
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
219def macroop LLDT_R
220{
221 chks reg, t0, InGDTCheck, flags=(EZF,)
222 br label("end"), flags=(CEZF,)
223 limm t4, 0
223 limm t4, 0, dataSize=8
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,)
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
240 limm t4, 0, dataSize=8
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,)
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
258 limm t4, 0, dataSize=8
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
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'''
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
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'''