interrupts_and_exceptions.py (5685:a55b78e4b6d6) interrupts_and_exceptions.py (5812:d12ff89c7692)
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

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

70 #t3 = temp_RFLAGS
71 #t4 = handy m5 register
72
73 # Pop temp_RIP, temp_CS, and temp_RFLAGS
74 ld t1, ss, [1, t0, rsp], "0 * env.stackSize", dataSize=ssz
75 ld t2, ss, [1, t0, rsp], "1 * env.stackSize", dataSize=ssz
76 ld t3, ss, [1, t0, rsp], "2 * env.stackSize", dataSize=ssz
77
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

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

70 #t3 = temp_RFLAGS
71 #t4 = handy m5 register
72
73 # Pop temp_RIP, temp_CS, and temp_RFLAGS
74 ld t1, ss, [1, t0, rsp], "0 * env.stackSize", dataSize=ssz
75 ld t2, ss, [1, t0, rsp], "1 * env.stackSize", dataSize=ssz
76 ld t3, ss, [1, t0, rsp], "2 * env.stackSize", dataSize=ssz
77
78 # Read the handy m5 register for use later
79 rdm5reg t4
78
79
80###
81### Handle if we're returning to virtual 8086 mode.
82###
83
84 #IF ((temp_RFLAGS.VM=1) && (CPL=0) && (LEGACY_MODE))
85 # IRET_FROM_PROTECTED_TO_VIRTUAL
86
87 #temp_RFLAGS.VM != 1
88 rcri t0, t3, 18, flags=(ECF,)
89 br label("protToVirtFallThrough"), flags=(nCECF,)
90
91 #CPL=0
80
81
82###
83### Handle if we're returning to virtual 8086 mode.
84###
85
86 #IF ((temp_RFLAGS.VM=1) && (CPL=0) && (LEGACY_MODE))
87 # IRET_FROM_PROTECTED_TO_VIRTUAL
88
89 #temp_RFLAGS.VM != 1
90 rcri t0, t3, 18, flags=(ECF,)
91 br label("protToVirtFallThrough"), flags=(nCECF,)
92
93 #CPL=0
92 rdm5reg t4
93 andi t0, t4, 0x30, flags=(EZF,)
94 br label("protToVirtFallThrough"), flags=(nCEZF,)
95
96 #(LEGACY_MODE)
97 rcri t0, t4, 1, flags=(ECF,)
98 br label("protToVirtFallThrough"), flags=(nCECF,)
99
100 panic "iret to virtual mode not supported"

--- 146 unchanged lines hidden ---
94 andi t0, t4, 0x30, flags=(EZF,)
95 br label("protToVirtFallThrough"), flags=(nCEZF,)
96
97 #(LEGACY_MODE)
98 rcri t0, t4, 1, flags=(ECF,)
99 br label("protToVirtFallThrough"), flags=(nCECF,)
100
101 panic "iret to virtual mode not supported"

--- 146 unchanged lines hidden ---