Mercurial > hg > truffle
comparison graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/AMD64Assembler.java @ 5552:69a8969dbf40
Reduce public fields in api.code project.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 09 Jun 2012 21:50:02 +0200 |
parents | b6617d13ea44 |
children | 4d7175cf3526 |
comparison
equal
deleted
inserted
replaced
5551:883c11613de5 | 5552:69a8969dbf40 |
---|---|
191 emitByte(op1); | 191 emitByte(op1); |
192 emitByte(op2 | encode(dst) << 3 | encode(src)); | 192 emitByte(op2 | encode(dst) << 3 | encode(src)); |
193 } | 193 } |
194 | 194 |
195 private void emitOperandHelper(Register reg, Address addr) { | 195 private void emitOperandHelper(Register reg, Address addr) { |
196 Register base = isLegal(addr.base) ? asRegister(addr.base) : Register.None; | 196 Register base = isLegal(addr.getBase()) ? asRegister(addr.getBase()) : Register.None; |
197 Register index = isLegal(addr.index) ? asRegister(addr.index) : Register.None; | 197 Register index = isLegal(addr.getIndex()) ? asRegister(addr.getIndex()) : Register.None; |
198 | 198 |
199 Address.Scale scale = addr.scale; | 199 Address.Scale scale = addr.getScale(); |
200 int disp = addr.displacement; | 200 int disp = addr.getDisplacement(); |
201 | 201 |
202 if (base == Register.Frame) { | 202 if (base == Register.Frame) { |
203 assert frameRegister != null : "cannot use register " + Register.Frame + " in assembler with null register configuration"; | 203 assert frameRegister != null : "cannot use register " + Register.Frame + " in assembler with null register configuration"; |
204 base = frameRegister; | 204 base = frameRegister; |
205 // } else if (base == CiRegister.CallerFrame) { | 205 // } else if (base == CiRegister.CallerFrame) { |
2221 return isRegister(value) && asRegister(value).encoding >= MinEncodingNeedsRex; | 2221 return isRegister(value) && asRegister(value).encoding >= MinEncodingNeedsRex; |
2222 } | 2222 } |
2223 | 2223 |
2224 | 2224 |
2225 private void prefix(Address adr) { | 2225 private void prefix(Address adr) { |
2226 if (needsRex(adr.base)) { | 2226 if (needsRex(adr.getBase())) { |
2227 if (needsRex(adr.index)) { | 2227 if (needsRex(adr.getIndex())) { |
2228 emitByte(Prefix.REXXB); | 2228 emitByte(Prefix.REXXB); |
2229 } else { | 2229 } else { |
2230 emitByte(Prefix.REXB); | 2230 emitByte(Prefix.REXB); |
2231 } | 2231 } |
2232 } else { | 2232 } else { |
2233 if (needsRex(adr.index)) { | 2233 if (needsRex(adr.getIndex())) { |
2234 emitByte(Prefix.REXX); | 2234 emitByte(Prefix.REXX); |
2235 } | 2235 } |
2236 } | 2236 } |
2237 } | 2237 } |
2238 | 2238 |
2239 private void prefixq(Address adr) { | 2239 private void prefixq(Address adr) { |
2240 if (needsRex(adr.base)) { | 2240 if (needsRex(adr.getBase())) { |
2241 if (needsRex(adr.index)) { | 2241 if (needsRex(adr.getIndex())) { |
2242 emitByte(Prefix.REXWXB); | 2242 emitByte(Prefix.REXWXB); |
2243 } else { | 2243 } else { |
2244 emitByte(Prefix.REXWB); | 2244 emitByte(Prefix.REXWB); |
2245 } | 2245 } |
2246 } else { | 2246 } else { |
2247 if (needsRex(adr.index)) { | 2247 if (needsRex(adr.getIndex())) { |
2248 emitByte(Prefix.REXWX); | 2248 emitByte(Prefix.REXWX); |
2249 } else { | 2249 } else { |
2250 emitByte(Prefix.REXW); | 2250 emitByte(Prefix.REXW); |
2251 } | 2251 } |
2252 } | 2252 } |
2253 } | 2253 } |
2254 | 2254 |
2255 private void prefix(Address adr, Register reg) { | 2255 private void prefix(Address adr, Register reg) { |
2256 if (reg.encoding < 8) { | 2256 if (reg.encoding < 8) { |
2257 if (needsRex(adr.base)) { | 2257 if (needsRex(adr.getBase())) { |
2258 if (needsRex(adr.index)) { | 2258 if (needsRex(adr.getIndex())) { |
2259 emitByte(Prefix.REXXB); | 2259 emitByte(Prefix.REXXB); |
2260 } else { | 2260 } else { |
2261 emitByte(Prefix.REXB); | 2261 emitByte(Prefix.REXB); |
2262 } | 2262 } |
2263 } else { | 2263 } else { |
2264 if (needsRex(adr.index)) { | 2264 if (needsRex(adr.getIndex())) { |
2265 emitByte(Prefix.REXX); | 2265 emitByte(Prefix.REXX); |
2266 } else if (reg.encoding >= 4) { | 2266 } else if (reg.encoding >= 4) { |
2267 emitByte(Prefix.REX); | 2267 emitByte(Prefix.REX); |
2268 } | 2268 } |
2269 } | 2269 } |
2270 } else { | 2270 } else { |
2271 if (needsRex(adr.base)) { | 2271 if (needsRex(adr.getBase())) { |
2272 if (needsRex(adr.index)) { | 2272 if (needsRex(adr.getIndex())) { |
2273 emitByte(Prefix.REXRXB); | 2273 emitByte(Prefix.REXRXB); |
2274 } else { | 2274 } else { |
2275 emitByte(Prefix.REXRB); | 2275 emitByte(Prefix.REXRB); |
2276 } | 2276 } |
2277 } else { | 2277 } else { |
2278 if (needsRex(adr.index)) { | 2278 if (needsRex(adr.getIndex())) { |
2279 emitByte(Prefix.REXRX); | 2279 emitByte(Prefix.REXRX); |
2280 } else { | 2280 } else { |
2281 emitByte(Prefix.REXR); | 2281 emitByte(Prefix.REXR); |
2282 } | 2282 } |
2283 } | 2283 } |
2284 } | 2284 } |
2285 } | 2285 } |
2286 | 2286 |
2287 private void prefixq(Address adr, Register src) { | 2287 private void prefixq(Address adr, Register src) { |
2288 if (src.encoding < 8) { | 2288 if (src.encoding < 8) { |
2289 if (needsRex(adr.base)) { | 2289 if (needsRex(adr.getBase())) { |
2290 if (needsRex(adr.index)) { | 2290 if (needsRex(adr.getIndex())) { |
2291 emitByte(Prefix.REXWXB); | 2291 emitByte(Prefix.REXWXB); |
2292 } else { | 2292 } else { |
2293 emitByte(Prefix.REXWB); | 2293 emitByte(Prefix.REXWB); |
2294 } | 2294 } |
2295 } else { | 2295 } else { |
2296 if (needsRex(adr.index)) { | 2296 if (needsRex(adr.getIndex())) { |
2297 emitByte(Prefix.REXWX); | 2297 emitByte(Prefix.REXWX); |
2298 } else { | 2298 } else { |
2299 emitByte(Prefix.REXW); | 2299 emitByte(Prefix.REXW); |
2300 } | 2300 } |
2301 } | 2301 } |
2302 } else { | 2302 } else { |
2303 if (needsRex(adr.base)) { | 2303 if (needsRex(adr.getBase())) { |
2304 if (needsRex(adr.index)) { | 2304 if (needsRex(adr.getIndex())) { |
2305 emitByte(Prefix.REXWRXB); | 2305 emitByte(Prefix.REXWRXB); |
2306 } else { | 2306 } else { |
2307 emitByte(Prefix.REXWRB); | 2307 emitByte(Prefix.REXWRB); |
2308 } | 2308 } |
2309 } else { | 2309 } else { |
2310 if (needsRex(adr.index)) { | 2310 if (needsRex(adr.getIndex())) { |
2311 emitByte(Prefix.REXWRX); | 2311 emitByte(Prefix.REXWRX); |
2312 } else { | 2312 } else { |
2313 emitByte(Prefix.REXWR); | 2313 emitByte(Prefix.REXWR); |
2314 } | 2314 } |
2315 } | 2315 } |