mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC
and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -118,6 +118,21 @@ namespace ISD {
|
||||
// Simple integer binary arithmetic operators.
|
||||
ADD, SUB, MUL, SDIV, UDIV, SREM, UREM,
|
||||
|
||||
// Carry-setting nodes for multiple precision addition and subtraction.
|
||||
// These nodes take two operands of the same value type, and produce two
|
||||
// results. The first result is the normal add or sub result, the second
|
||||
// result is the carry flag result.
|
||||
ADDC, SUBC,
|
||||
|
||||
// Carry-using nodes for multiple precision addition and subtraction. These
|
||||
// nodes take three operands: The first two are the normal lhs and rhs to
|
||||
// the add or sub, and the third is the input carry flag. These nodes
|
||||
// produce two results; the normal result of the add or sub, and the output
|
||||
// carry flag. These nodes both read and write a carry flag to allow them
|
||||
// to them to be chained together for add and sub of arbitrarily large
|
||||
// values.
|
||||
ADDE, SUBE,
|
||||
|
||||
// Simple binary floating point operators.
|
||||
FADD, FSUB, FMUL, FDIV, FREM,
|
||||
|
||||
@@ -156,13 +171,6 @@ namespace ISD {
|
||||
// (op #2) as a CondCodeSDNode.
|
||||
SETCC,
|
||||
|
||||
// ADD_PARTS/SUB_PARTS - These operators take two logical operands which are
|
||||
// broken into a multiple pieces each, and return the resulting pieces of
|
||||
// doing an atomic add/sub operation. This is used to handle add/sub of
|
||||
// expanded types. The operation ordering is:
|
||||
// [Lo,Hi] = op [LoLHS,HiLHS], [LoRHS,HiRHS]
|
||||
ADD_PARTS, SUB_PARTS,
|
||||
|
||||
// SHL_PARTS/SRA_PARTS/SRL_PARTS - These operators are used for expanded
|
||||
// integer shift operations, just like ADD/SUB_PARTS. The operation
|
||||
// ordering is:
|
||||
|
Reference in New Issue
Block a user