compare_strings.py (5420:dc0041a51920) | compare_strings.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 --- 62 unchanged lines hidden (view full) --- 71 72# 73# Versions which have the rep prefix. These could benefit from some loop 74# unrolling. 75# 76 77def macroop CMPS_E_M_M { 78 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 --- 62 unchanged lines hidden (view full) --- 71 72# 73# Versions which have the rep prefix. These could benefit from some loop 74# unrolling. 75# 76 77def macroop CMPS_E_M_M { 78 and t0, rcx, rcx, flags=(EZF,), dataSize=asz |
79 bri t0, label("end"), flags=(CEZF,) | 79 br label("end"), flags=(CEZF,) |
80 81 # Find the constant we need to either add or subtract from rdi 82 ruflag t0, 10 83 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 84 subi t4, t0, dsz, dataSize=asz 85 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 86 87topOfLoop: 88 ld t1, seg, [1, t0, rsi] 89 ld t2, es, [1, t0, rdi] 90 sub t0, t1, t2, flags=(OF, SF, ZF, AF, PF, CF) 91 92 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 93 add rdi, rdi, t3, dataSize=asz 94 add rsi, rsi, t3, dataSize=asz | 80 81 # Find the constant we need to either add or subtract from rdi 82 ruflag t0, 10 83 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 84 subi t4, t0, dsz, dataSize=asz 85 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 86 87topOfLoop: 88 ld t1, seg, [1, t0, rsi] 89 ld t2, es, [1, t0, rdi] 90 sub t0, t1, t2, flags=(OF, SF, ZF, AF, PF, CF) 91 92 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 93 add rdi, rdi, t3, dataSize=asz 94 add rsi, rsi, t3, dataSize=asz |
95 bri t0, label("topOfLoop"), flags=(CSTRZnEZF,) | 95 br label("topOfLoop"), flags=(CSTRZnEZF,) |
96end: 97 fault "NoFault" 98}; 99 100def macroop CMPS_N_M_M { 101 and t0, rcx, rcx, flags=(EZF,), dataSize=asz | 96end: 97 fault "NoFault" 98}; 99 100def macroop CMPS_N_M_M { 101 and t0, rcx, rcx, flags=(EZF,), dataSize=asz |
102 bri t0, label("end"), flags=(CEZF,) | 102 br label("end"), flags=(CEZF,) |
103 104 # Find the constant we need to either add or subtract from rdi 105 ruflag t0, 10 106 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 107 subi t4, t0, dsz, dataSize=asz 108 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 109 110topOfLoop: 111 ld t1, seg, [1, t0, rsi] 112 ld t2, es, [1, t0, rdi] 113 sub t0, t1, t2, flags=(OF, SF, ZF, AF, PF, CF) 114 115 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 116 add rdi, rdi, t3, dataSize=asz 117 add rsi, rsi, t3, dataSize=asz | 103 104 # Find the constant we need to either add or subtract from rdi 105 ruflag t0, 10 106 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz 107 subi t4, t0, dsz, dataSize=asz 108 mov t3, t3, t4, flags=(nCEZF,), dataSize=asz 109 110topOfLoop: 111 ld t1, seg, [1, t0, rsi] 112 ld t2, es, [1, t0, rdi] 113 sub t0, t1, t2, flags=(OF, SF, ZF, AF, PF, CF) 114 115 subi rcx, rcx, 1, flags=(EZF,), dataSize=asz 116 add rdi, rdi, t3, dataSize=asz 117 add rsi, rsi, t3, dataSize=asz |
118 bri t0, label("topOfLoop"), flags=(CSTRnZnEZF,) | 118 br label("topOfLoop"), flags=(CSTRnZnEZF,) |
119end: 120 fault "NoFault" 121}; 122''' | 119end: 120 fault "NoFault" 121}; 122''' |