1# Copyright (c) 2007-2008 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 --- 176 unchanged lines hidden (view full) --- 185 br label("processSSDescriptor") 186globalSSDescriptor: 187 ld t7, tsg, [1, t0, t7], dataSize=8 188processSSDescriptor: 189 chks t2, t7, dataSize=8 190 191 # This actually updates state which is wrong. It should wait until we know 192 # we're not going to fault. Unfortunately, that's hard to do. |
193 wrdl ss, t7, t2 194 wrsel ss, t2 |
195 196### 197### From this point downwards, we can't fault. We can update user visible state. 198### 199 # RSP.s = temp_RSP 200 mov rsp, rsp, t6, dataSize=ssz 201 202 #} --- 16 unchanged lines hidden (view full) --- 219 # seg = NULL 220 # } 221 #} 222 223skipSegmentSquashing: 224 225 # Ignore this for now. 226 #RFLAGS.v = temp_RFLAGS |
227 wrflags t0, t3 |
228 # VIF,VIP,IOPL only changed if (old_CPL = 0) 229 # IF only changed if (old_CPL <= old_RFLAGS.IOPL) 230 # VM unchanged 231 # RF cleared 232 233 #RIP = temp_RIP 234 wrip t0, t1, dataSize=ssz 235}; 236 237def macroop IRET_VIRT { 238 panic "Virtual mode iret isn't implemented!" 239}; 240''' 241#let {{ 242# class INT(Inst): 243# "GenFault ${new UnimpInstFault}" 244# class INTO(Inst): 245# "GenFault ${new UnimpInstFault}" 246#}}; |