integerop.isa (2632:1bb2f91485ea) | integerop.isa (2646:c5f20661d9f3) |
---|---|
1// Copyright (c) 2006 The Regents of The University of Michigan 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer; 8// redistributions in binary form must reproduce the above copyright --- 302 unchanged lines hidden (view full) --- 311 decoder_output += BasicConstructor.subst(imm_iop) 312 exec_output += IntOpExecute.subst(imm_iop) 313 decode_block = ROrImmDecode.subst(iop) 314 else: 315 decode_block = BasicDecode.subst(iop) 316 return (header_output, decoder_output, exec_output, decode_block) 317 318 calcCcCode = ''' | 1// Copyright (c) 2006 The Regents of The University of Michigan 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer; 8// redistributions in binary form must reproduce the above copyright --- 302 unchanged lines hidden (view full) --- 311 decoder_output += BasicConstructor.subst(imm_iop) 312 exec_output += IntOpExecute.subst(imm_iop) 313 decode_block = ROrImmDecode.subst(iop) 314 else: 315 decode_block = BasicDecode.subst(iop) 316 return (header_output, decoder_output, exec_output, decode_block) 317 318 calcCcCode = ''' |
319 CcrIccN = (Rd >> 31) & 1; 320 CcrIccZ = ((Rd & 0xFFFFFFFF) == 0); 321 CcrXccN = (Rd >> 63) & 1; 322 CcrXccZ = (Rd == 0); 323 CcrIccV = %(ivValue)s; 324 CcrIccC = %(icValue)s; 325 CcrXccV = %(xvValue)s; 326 CcrXccC = %(xcValue)s; 327 DPRINTF(Sparc, "in = %%d\\n", CcrIccN); 328 DPRINTF(Sparc, "iz = %%d\\n", CcrIccZ); 329 DPRINTF(Sparc, "xn = %%d\\n", CcrXccN); 330 DPRINTF(Sparc, "xz = %%d\\n", CcrXccZ); 331 DPRINTF(Sparc, "iv = %%d\\n", CcrIccV); 332 DPRINTF(Sparc, "ic = %%d\\n", CcrIccC); 333 DPRINTF(Sparc, "xv = %%d\\n", CcrXccV); 334 DPRINTF(Sparc, "xc = %%d\\n", CcrXccC); | 319 uint8_t tmp_ccriccc; 320 uint8_t tmp_ccriccv; 321 uint8_t tmp_ccriccz; 322 uint8_t tmp_ccriccn; 323 uint8_t tmp_ccrxccc; 324 uint8_t tmp_ccrxccv; 325 uint8_t tmp_ccrxccz; 326 uint8_t tmp_ccrxccn; 327 328 tmp_ccriccn = (Rd >> 31) & 1; 329 tmp_ccriccz = ((Rd & 0xFFFFFFFF) == 0); 330 tmp_ccrxccn = (Rd >> 63) & 1; 331 tmp_ccrxccz = (Rd == 0); 332 tmp_ccriccv = %(ivValue)s & 1; 333 tmp_ccriccc = %(icValue)s & 1; 334 tmp_ccrxccv = %(xvValue)s & 1; 335 tmp_ccrxccc = %(xcValue)s & 1; 336 337 Ccr = tmp_ccriccc | tmp_ccriccv << 1 | 338 tmp_ccriccz << 2 | tmp_ccriccn << 3| 339 tmp_ccrxccc << 4 | tmp_ccrxccv << 5| 340 tmp_ccrxccz << 6| tmp_ccrxccn << 7; 341 342 343 DPRINTF(Sparc, "in = %%d\\n", (uint16_t)tmp_ccriccn); 344 DPRINTF(Sparc, "iz = %%d\\n", (uint16_t)tmp_ccriccz); 345 DPRINTF(Sparc, "xn = %%d\\n", (uint16_t)tmp_ccrxccn); 346 DPRINTF(Sparc, "xz = %%d\\n", (uint16_t)tmp_ccrxccz); 347 DPRINTF(Sparc, "iv = %%d\\n", (uint16_t)tmp_ccriccv); 348 DPRINTF(Sparc, "ic = %%d\\n", (uint16_t)tmp_ccriccc); 349 DPRINTF(Sparc, "xv = %%d\\n", (uint16_t)tmp_ccrxccv); 350 DPRINTF(Sparc, "xc = %%d\\n", (uint16_t)tmp_ccrxccc); |
335 ''' 336}}; 337 338// Primary format for integer operate instructions: 339def format IntOp(code, *opt_flags) {{ 340 ccCode = '' 341 (header_output, 342 decoder_output, --- 37 unchanged lines hidden --- | 351 ''' 352}}; 353 354// Primary format for integer operate instructions: 355def format IntOp(code, *opt_flags) {{ 356 ccCode = '' 357 (header_output, 358 decoder_output, --- 37 unchanged lines hidden --- |