shift.py (6480:ed9d773de88f) shift.py (6481:fa6d324aa2f9)
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

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

215def macroop SHR_P_R
216{
217 rdip t7
218 ldst t1, seg, riprel, disp
219 srl t1, t1, reg, flags=(CF,OF,SF,ZF,PF)
220 st t1, seg, riprel, disp
221};
222
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

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

215def macroop SHR_P_R
216{
217 rdip t7
218 ldst t1, seg, riprel, disp
219 srl t1, t1, reg, flags=(CF,OF,SF,ZF,PF)
220 st t1, seg, riprel, disp
221};
222
223# SHRD will not set OF correctly when the shift count is 1.
223def macroop SHRD_R_R
224{
225 mdbi regm, 0
226 srd reg, reg, rcx, flags=(CF,OF,SF,ZF,PF)
227};
228
229def macroop SHRD_M_R
230{
231 ldst t1, seg, sib, disp
232 mdbi reg, 0
233 srd t1, t1, rcx, flags=(CF,OF,SF,ZF,PF)
234 st t1, seg, sib, disp
235};
236
237def macroop SHRD_P_R
238{
239 rdip t7
240 ldst t1, seg, riprel, disp
241 mdbi reg, 0
242 srd t1, t1, rcx, flags=(CF,OF,SF,ZF,PF)
243 st t1, seg, riprel, disp
244};
245
224def macroop SHRD_R_R_I
225{
246def macroop SHRD_R_R_I
247{
226 srli t1, reg, imm, flags=(CF,)
227 rori t2, regm, imm
228 srli t3, regm, imm
229 xor t2, t2, t3
230 or reg, t1, t2
248 mdbi regm, 0
249 srdi reg, reg, imm, flags=(CF,OF,SF,ZF,PF)
231};
232
250};
251
233# SHRD will not set OF correctly when the shift count is 1.
234def macroop SHRD_M_R_I
235{
236 ldst t1, seg, sib, disp
252def macroop SHRD_M_R_I
253{
254 ldst t1, seg, sib, disp
237 srli t1, t1, imm, flags=(CF,)
238 rori t2, reg, imm
239 srli t3, reg, imm
240 xor t2, t2, t3
241 or t1, t1, t2
255 mdbi reg, 0
256 srdi t1, t1, imm, flags=(CF,OF,SF,ZF,PF)
242 st t1, seg, sib, disp
243};
244
257 st t1, seg, sib, disp
258};
259
245# SHRD will not set OF correctly when the shift count is 1.
246def macroop SHRD_P_R_I
247{
248 rdip t7
249 ldst t1, seg, riprel, disp
260def macroop SHRD_P_R_I
261{
262 rdip t7
263 ldst t1, seg, riprel, disp
250 srli t1, t1, imm, flags=(CF,)
251 rori t2, reg, imm
252 srli t3, reg, imm
253 xor t2, t2, t3
254 or t1, t1, t2
264 mdbi reg, 0
265 srdi t1, t1, imm, flags=(CF,OF,SF,ZF,PF)
255 st t1, seg, riprel, disp
256};
257
258def macroop SAR_R_I
259{
260 srai reg, reg, imm, flags=(CF,OF,SF,ZF,PF)
261};
262

--- 55 unchanged lines hidden ---
266 st t1, seg, riprel, disp
267};
268
269def macroop SAR_R_I
270{
271 srai reg, reg, imm, flags=(CF,OF,SF,ZF,PF)
272};
273

--- 55 unchanged lines hidden ---