mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-09 16:45:03 +00:00
Sign extender
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28603 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6dc6665e29
commit
f91c10153c
@ -706,14 +706,6 @@ def IDIV16m: I<0xF7, MRM7m, (ops i16mem:$src), // DX:AX/[mem16] = AX,DX
|
||||
def IDIV32m: I<0xF7, MRM7m, (ops i32mem:$src), // EDX:EAX/[mem32] = EAX,EDX
|
||||
"idiv{l} $src", []>, Imp<[EAX,EDX],[EAX,EDX]>;
|
||||
|
||||
// Sign-extenders for division.
|
||||
def CBW : I<0x98, RawFrm, (ops),
|
||||
"{cbtw|cbw}", []>, Imp<[AL],[AH]>; // AX = signext(AL)
|
||||
def CWD : I<0x99, RawFrm, (ops),
|
||||
"{cwtd|cwd}", []>, Imp<[AX],[DX]>; // DX:AX = signext(AX)
|
||||
def CDQ : I<0x99, RawFrm, (ops),
|
||||
"{cltd|cdq}", []>, Imp<[EAX],[EDX]>; // EDX:EAX = signext(EAX)
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Two address Instructions...
|
||||
@ -2285,6 +2277,16 @@ def MOVZX32rm16: I<0xB7, MRMSrcMem, (ops GR32:$dst, i16mem:$src),
|
||||
"movz{wl|x} {$src, $dst|$dst, $src}",
|
||||
[(set GR32:$dst, (zextloadi32i16 addr:$src))]>, TB;
|
||||
|
||||
def CBW : I<0x98, RawFrm, (ops),
|
||||
"{cbtw|cbw}", []>, Imp<[AL],[AX]>; // AX = signext(AL)
|
||||
def CWDE : I<0x98, RawFrm, (ops),
|
||||
"{cwtl|cwde}", []>, Imp<[AX],[EAX]>; // EAX = signext(AX)
|
||||
|
||||
def CWD : I<0x99, RawFrm, (ops),
|
||||
"{cwtd|cwd}", []>, Imp<[AX],[AX,DX]>; // DX:AX = signext(AX)
|
||||
def CDQ : I<0x99, RawFrm, (ops),
|
||||
"{cltd|cdq}", []>, Imp<[EAX],[EAX,EDX]>; // EDX:EAX = signext(EAX)
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Miscellaneous Instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user