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 9# use which is NOT directed to receiving any direct monetary --- 46 unchanged lines hidden (view full) --- 56microcode = ''' 57def macroop INS_M_R { 58 # Find the constant we need to either add or subtract from rdi 59 ruflag t0, 10 60 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 61 subi t4, t0, dsz, dataSize=asz 62 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 63 |
64 zexti t2, reg, 15, dataSize=2 65 |
66 ld t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
67 st t6, es, [1, t0, rdi] 68 69 add rdi, rdi, t3, dataSize=asz 70}; 71 72def macroop INS_E_M_R { 73 # Find the constant we need to either add or subtract from rdi 74 ruflag t0, 10 75 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 76 subi t4, t0, dsz, dataSize=asz 77 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 78 |
79 zexti t2, reg, 15, dataSize=2 80 81topOfLoop: |
82 ld t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
83 st t6, es, [1, t0, rdi] 84 85 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 86 add rdi, rdi, t3, dataSize=asz 87 bri t0, label("topOfLoop"), flags=(nCEZF,) 88 fault "NoFault" 89}; 90 91def macroop OUTS_R_M { 92 # Find the constant we need to either add or subtract from rdi 93 ruflag t0, 10 94 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 95 subi t4, t0, dsz, dataSize=asz 96 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 97 |
98 zexti t2, reg, 15, dataSize=2 99 100 ld t6, ds, [1, t0, rsi] |
101 st t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
102 103 add rsi, rsi, t3, dataSize=asz 104}; 105 106def macroop OUTS_E_R_M { 107 # Find the constant we need to either add or subtract from rdi 108 ruflag t0, 10 109 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 110 subi t4, t0, dsz, dataSize=asz 111 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 112 |
113 zexti t2, reg, 15, dataSize=2 114 115topOfLoop: 116 ld t6, ds, [1, t0, rsi] |
117 st t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
118 119 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 120 add rsi, rsi, t3, dataSize=asz 121 bri t0, label("topOfLoop"), flags=(nCEZF,) 122 fault "NoFault" 123}; 124''' |