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 --- |