001 /*
002 * This file is part of the Jikes RVM project (http://jikesrvm.org).
003 *
004 * This file is licensed to You under the Eclipse Public License (EPL);
005 * You may not use this file except in compliance with the License. You
006 * may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/eclipse-1.0.php
009 *
010 * See the COPYRIGHT.txt file distributed with this work for information
011 * regarding copyright ownership.
012 */
013 package org.jikesrvm.compilers.common.assembler.ia32;
014
015 /**
016 * Constants exported by the assembler
017 */
018 public interface AssemblerConstants {
019 String[] CONDITION =
020 {"O", "NO", "LLT", "LGE", "EQ", "NE", "LLE", "LGT", "S", "NS", "PE", "PO", "LT", "GE", "LE", "GT"};
021
022 byte O = 0x0; // OF == 1 - overflow
023 byte NO = 0x1; // OF == 0 - not overflow
024 byte LLT = 0x2; // CF == 1 - logically less than (below)
025 byte LGE = 0x3; // CF == 0 - logically greater than or equal (not below)
026 byte EQ = 0x4; // ZF == 1 - equal (zero)
027 byte NE = 0x5; // ZF == 0 - not equal (not zero)
028 byte LLE = 0x6; // CF == 1 or ZF == 1 - logically less than or equal (not above)
029 byte LGT = 0x7; // CF == 0 and ZF == 0 - logically greater than (above)
030 byte S = 0x8; // SF == 1 - (sign) negative??
031 byte NS = 0x9; // SF == 0 - (not sign) positive or zero??
032 byte PE = 0xA; // PF == 1 - even parity or unordered floating point #s
033 byte PO = 0xB; // PF == 0 - odd parity or ordered floating point #s
034 byte LT = 0xC; // SF != OF - less than
035 byte GE = 0xD; // SF == OF - greater than or equal (not less than)
036 byte LE = 0xE; // ZF == 1 or SF != OF - less than or equal (not greater than)
037 byte GT = 0xF; // ZF == 0 and SF == OF - greater than
038
039 // scale factors for SIB bytes
040 short BYTE = 0;
041 short SHORT = 1;
042 short WORD = 2;
043 short LONG = 3;
044
045 }