segmentation.py (5927:5e3367b103da) | segmentation.py (5930:ec124ac0984b) |
---|---|
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 --- 42 unchanged lines hidden (view full) --- 51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 53# 54# Authors: Gabe Black 55 56microcode = ''' 57def macroop LGDT_M 58{ | 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 --- 42 unchanged lines hidden (view full) --- 51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 53# 54# Authors: Gabe Black 55 56microcode = ''' 57def macroop LGDT_M 58{ |
59 .adjust_env oszForPseudoDesc | 59 .adjust_env maxOsz |
60 61 # Get the limit 62 ld t1, seg, sib, disp, dataSize=2 63 # Get the base 64 ld t2, seg, sib, 'adjustedDisp + 2' 65 wrbase tsg, t2 66 wrlimit tsg, t1 67}; 68 69def macroop LGDT_P 70{ | 60 61 # Get the limit 62 ld t1, seg, sib, disp, dataSize=2 63 # Get the base 64 ld t2, seg, sib, 'adjustedDisp + 2' 65 wrbase tsg, t2 66 wrlimit tsg, t1 67}; 68 69def macroop LGDT_P 70{ |
71 .adjust_env oszForPseudoDesc | 71 .adjust_env maxOsz |
72 73 rdip t7 74 # Get the limit 75 ld t1, seg, riprel, disp, dataSize=2 76 # Get the base 77 ld t2, seg, riprel, 'adjustedDisp + 2' 78 wrbase tsg, t2 79 wrlimit tsg, t1 80}; 81 82# 83# These versions are for when the original data size was 16 bits. The base is 84# still 32 bits, but the top byte is zeroed before being used. 85# 86 87def macroop LGDT_16_M 88{ | 72 73 rdip t7 74 # Get the limit 75 ld t1, seg, riprel, disp, dataSize=2 76 # Get the base 77 ld t2, seg, riprel, 'adjustedDisp + 2' 78 wrbase tsg, t2 79 wrlimit tsg, t1 80}; 81 82# 83# These versions are for when the original data size was 16 bits. The base is 84# still 32 bits, but the top byte is zeroed before being used. 85# 86 87def macroop LGDT_16_M 88{ |
89 .adjust_env oszForPseudoDesc | 89 .adjust_env maxOsz |
90 91 # Get the limit 92 ld t1, seg, sib, disp, dataSize=2 93 # Get the base 94 ld t2, seg, sib, 'adjustedDisp + 2', dataSize=4 95 zexti t2, t2, 23, dataSize=8 96 wrbase tsg, t2 97 wrlimit tsg, t1 98}; 99 100def macroop LGDT_16_P 101{ | 90 91 # Get the limit 92 ld t1, seg, sib, disp, dataSize=2 93 # Get the base 94 ld t2, seg, sib, 'adjustedDisp + 2', dataSize=4 95 zexti t2, t2, 23, dataSize=8 96 wrbase tsg, t2 97 wrlimit tsg, t1 98}; 99 100def macroop LGDT_16_P 101{ |
102 .adjust_env oszForPseudoDesc | 102 .adjust_env maxOsz |
103 104 rdip t7 105 # Get the limit 106 ld t1, seg, riprel, disp, dataSize=2 107 # Get the base 108 ld t2, seg, riprel, 'adjustedDisp + 2', dataSize=4 109 zexti t2, t2, 23, dataSize=8 110 wrbase tsg, t2 111 wrlimit tsg, t1 112}; 113 114def macroop LIDT_M 115{ | 103 104 rdip t7 105 # Get the limit 106 ld t1, seg, riprel, disp, dataSize=2 107 # Get the base 108 ld t2, seg, riprel, 'adjustedDisp + 2', dataSize=4 109 zexti t2, t2, 23, dataSize=8 110 wrbase tsg, t2 111 wrlimit tsg, t1 112}; 113 114def macroop LIDT_M 115{ |
116 .adjust_env oszForPseudoDesc | 116 .adjust_env maxOsz |
117 118 # Get the limit 119 ld t1, seg, sib, disp, dataSize=2 120 # Get the base 121 ld t2, seg, sib, 'adjustedDisp + 2' 122 wrbase idtr, t2 123 wrlimit idtr, t1 124}; 125 126def macroop LIDT_P 127{ | 117 118 # Get the limit 119 ld t1, seg, sib, disp, dataSize=2 120 # Get the base 121 ld t2, seg, sib, 'adjustedDisp + 2' 122 wrbase idtr, t2 123 wrlimit idtr, t1 124}; 125 126def macroop LIDT_P 127{ |
128 .adjust_env oszForPseudoDesc | 128 .adjust_env maxOsz |
129 130 rdip t7 131 # Get the limit 132 ld t1, seg, riprel, disp, dataSize=2 133 # Get the base 134 ld t2, seg, riprel, 'adjustedDisp + 2' 135 wrbase idtr, t2 136 wrlimit idtr, t1 137}; 138 139# 140# These versions are for when the original data size was 16 bits. The base is 141# still 32 bits, but the top byte is zeroed before being used. 142# 143 144def macroop LIDT_16_M 145{ | 129 130 rdip t7 131 # Get the limit 132 ld t1, seg, riprel, disp, dataSize=2 133 # Get the base 134 ld t2, seg, riprel, 'adjustedDisp + 2' 135 wrbase idtr, t2 136 wrlimit idtr, t1 137}; 138 139# 140# These versions are for when the original data size was 16 bits. The base is 141# still 32 bits, but the top byte is zeroed before being used. 142# 143 144def macroop LIDT_16_M 145{ |
146 .adjust_env oszForPseudoDesc | 146 .adjust_env maxOsz |
147 148 # Get the limit 149 ld t1, seg, sib, disp, dataSize=2 150 # Get the base 151 ld t2, seg, sib, 'adjustedDisp + 2', dataSize=4 152 zexti t2, t2, 23, dataSize=8 153 wrbase idtr, t2 154 wrlimit idtr, t1 155}; 156 157def macroop LIDT_16_P 158{ | 147 148 # Get the limit 149 ld t1, seg, sib, disp, dataSize=2 150 # Get the base 151 ld t2, seg, sib, 'adjustedDisp + 2', dataSize=4 152 zexti t2, t2, 23, dataSize=8 153 wrbase idtr, t2 154 wrlimit idtr, t1 155}; 156 157def macroop LIDT_16_P 158{ |
159 .adjust_env oszForPseudoDesc | 159 .adjust_env maxOsz |
160 161 rdip t7 162 # Get the limit 163 ld t1, seg, riprel, disp, dataSize=2 164 # Get the base 165 ld t2, seg, riprel, 'adjustedDisp + 2', dataSize=4 166 zexti t2, t2, 23, dataSize=8 167 wrbase idtr, t2 --- 59 unchanged lines hidden --- | 160 161 rdip t7 162 # Get the limit 163 ld t1, seg, riprel, disp, dataSize=2 164 # Get the base 165 ld t2, seg, riprel, 'adjustedDisp + 2', dataSize=4 166 zexti t2, t2, 23, dataSize=8 167 wrbase idtr, t2 --- 59 unchanged lines hidden --- |