string_io.py (5420:dc0041a51920) string_io.py (5661:443e6f925027)
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

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

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 and t0, rcx, rcx, flags=(EZF,), dataSize=asz
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

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

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 and t0, rcx, rcx, flags=(EZF,), dataSize=asz
74 bri t0, label("end"), flags=(CEZF,)
74 br label("end"), flags=(CEZF,)
75 # Find the constant we need to either add or subtract from rdi
76 ruflag t0, 10
77 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz
78 subi t4, t0, dsz, dataSize=asz
79 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz
80
81 zexti t2, reg, 15, dataSize=2
82
83topOfLoop:
84 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
75 # Find the constant we need to either add or subtract from rdi
76 ruflag t0, 10
77 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz
78 subi t4, t0, dsz, dataSize=asz
79 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz
80
81 zexti t2, reg, 15, dataSize=2
82
83topOfLoop:
84 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,)
89 br label("topOfLoop"), flags=(nCEZF,)
90end:
91 fault "NoFault"
92};
93
94def macroop OUTS_R_M {
95 # Find the constant we need to either add or subtract from rdi
96 ruflag t0, 10
97 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz

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

103 ld t6, ds, [1, t0, rsi]
104 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 and t0, rcx, rcx, flags=(EZF,), dataSize=asz
90end:
91 fault "NoFault"
92};
93
94def macroop OUTS_R_M {
95 # Find the constant we need to either add or subtract from rdi
96 ruflag t0, 10
97 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz

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

103 ld t6, ds, [1, t0, rsi]
104 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 and t0, rcx, rcx, flags=(EZF,), dataSize=asz
111 bri t0, label("end"), flags=(CEZF,)
111 br label("end"), flags=(CEZF,)
112 # Find the constant we need to either add or subtract from rdi
113 ruflag t0, 10
114 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz
115 subi t4, t0, dsz, dataSize=asz
116 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz
117
118 zexti t2, reg, 15, dataSize=2
119
120topOfLoop:
121 ld t6, ds, [1, t0, rsi]
122 st t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8
123
124 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
125 add rsi, rsi, t3, dataSize=asz
112 # Find the constant we need to either add or subtract from rdi
113 ruflag t0, 10
114 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz
115 subi t4, t0, dsz, dataSize=asz
116 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz
117
118 zexti t2, reg, 15, dataSize=2
119
120topOfLoop:
121 ld t6, ds, [1, t0, rsi]
122 st t6, intseg, [1, t2, t0], "IntAddrPrefixIO << 3", addressSize=8
123
124 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
125 add rsi, rsi, t3, dataSize=asz
126 bri t0, label("topOfLoop"), flags=(nCEZF,)
126 br label("topOfLoop"), flags=(nCEZF,)
127end:
128 fault "NoFault"
129};
130'''
127end:
128 fault "NoFault"
129};
130'''