string_io.py (5239:0920dfb94514) | string_io.py (5418:501cb81c89df) |
---|---|
1# Copyright (c) 2007 The Hewlett-Packard Development Company | 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 | 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 limm t1, "IntAddrPrefixIO" | |
65 zexti t2, reg, 15, dataSize=2 66 | 64 zexti t2, reg, 15, dataSize=2 65 |
67 ld t6, intseg, [1, t1, t2], addressSize=8 | 66 ld t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
68 st t6, es, [1, t0, rdi] 69 70 add rdi, rdi, t3, dataSize=asz 71}; 72 73def macroop INS_E_M_R { 74 # Find the constant we need to either add or subtract from rdi 75 ruflag t0, 10 76 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 77 subi t4, t0, dsz, dataSize=asz 78 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 79 | 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 |
80 limm t1, "IntAddrPrefixIO" | |
81 zexti t2, reg, 15, dataSize=2 82 83topOfLoop: | 79 zexti t2, reg, 15, dataSize=2 80 81topOfLoop: |
84 ld t6, intseg, [1, t1, t2], addressSize=8 | 82 ld t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
85 st t6, es, [1, t0, rdi] 86 87 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 88 add rdi, rdi, t3, dataSize=asz 89 bri t0, label("topOfLoop"), flags=(nCEZF,) 90 fault "NoFault" 91}; 92 93def macroop OUTS_R_M { 94 # Find the constant we need to either add or subtract from rdi 95 ruflag t0, 10 96 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 97 subi t4, t0, dsz, dataSize=asz 98 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 99 | 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 |
100 limm t1, "IntAddrPrefixIO" | |
101 zexti t2, reg, 15, dataSize=2 102 103 ld t6, ds, [1, t0, rsi] | 98 zexti t2, reg, 15, dataSize=2 99 100 ld t6, ds, [1, t0, rsi] |
104 st t6, intseg, [1, t1, t2], addressSize=8 | 101 st t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
105 106 add rsi, rsi, t3, dataSize=asz 107}; 108 109def macroop OUTS_E_R_M { 110 # Find the constant we need to either add or subtract from rdi 111 ruflag t0, 10 112 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 113 subi t4, t0, dsz, dataSize=asz 114 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 115 | 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 |
116 limm t1, "IntAddrPrefixIO" | |
117 zexti t2, reg, 15, dataSize=2 118 119topOfLoop: 120 ld t6, ds, [1, t0, rsi] | 113 zexti t2, reg, 15, dataSize=2 114 115topOfLoop: 116 ld t6, ds, [1, t0, rsi] |
121 st t6, intseg, [1, t1, t2], addressSize=8 | 117 st t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8 |
122 123 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 124 add rsi, rsi, t3, dataSize=asz 125 bri t0, label("topOfLoop"), flags=(nCEZF,) 126 fault "NoFault" 127}; 128''' | 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''' |