interrupts_and_exceptions.py (5932:afa0866171e1) interrupts_and_exceptions.py (6298:9af8736c26be)
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

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

153 br label("doPopStackStuff"), flags=(nCEZF,)
154 # We can modify user visible state here because we're know
155 # we're done with things that can fault.
156 addi rsp, rsp, "3 * env.stackSize"
157 br label("fallThroughPopStackStuff")
158
159doPopStackStuffAndCheckRIP:
160 # Check if the RIP is canonical.
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

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

153 br label("doPopStackStuff"), flags=(nCEZF,)
154 # We can modify user visible state here because we're know
155 # we're done with things that can fault.
156 addi rsp, rsp, "3 * env.stackSize"
157 br label("fallThroughPopStackStuff")
158
159doPopStackStuffAndCheckRIP:
160 # Check if the RIP is canonical.
161 sra t7, t1, 47, flags=(EZF,), dataSize=ssz
161 srai t7, t1, 47, flags=(EZF,), dataSize=ssz
162 # if t7 isn't 0 or -1, it wasn't canonical.
163 br label("doPopStackStuff"), flags=(CEZF,)
164 addi t0, t7, 1, flags=(EZF,), dataSize=ssz
165 fault "new GeneralProtection(0)", flags=(nCEZF,)
166
167doPopStackStuff:
168 # POP.v temp_RSP
169 ld t6, ss, [1, t0, rsp], "3 * env.dataSize", dataSize=ssz

--- 77 unchanged lines hidden ---
162 # if t7 isn't 0 or -1, it wasn't canonical.
163 br label("doPopStackStuff"), flags=(CEZF,)
164 addi t0, t7, 1, flags=(EZF,), dataSize=ssz
165 fault "new GeneralProtection(0)", flags=(nCEZF,)
166
167doPopStackStuff:
168 # POP.v temp_RSP
169 ld t6, ss, [1, t0, rsp], "3 * env.dataSize", dataSize=ssz

--- 77 unchanged lines hidden ---