ComPort <strong>–</strong> <strong>Compilador</strong> <strong>Portugol</strong> DIVU paraoperadores de ponto flutuante. Todas as operações com valores de 32-bits AND, ANDI E lógico e E lógico com constante OR, ORI, XOP, XOPI LHI SLL, SRL, SRA, SLLI, SRLI, SRAI S__, S__I Controle BEQZ, BNEZ BFPT, BFPF J, JR JAL, JALR TRAP RFE Ponto Flutuante Ou, Ou com constante, Ou exclusivo e Ou exclusive com constante Carrega a metade superior de um registro com uma constante Deslocamentos: com constante (S__I) ou com variável (S__); deslocamentos a esquerda lógico, a direita lógico e a direita aritmético Marca se condição: "__" pode ser LT, GT, LE, GE, EQ, NE (menor, maior, menor ou igual, maior ou igual, igual, não igual) Saltos condicionais e desvios. Relativos ao PC (program counter) ou através de registrador Salta se o registrador é igual ou diferente a zero. Deslocamento de 16 bits a partir do PC Testa o bit de comparação do registrador de status FP e salta (16 bits a partir do PC) Salta a partir do PC com deslocamento de 26 bits ou para endereço no registrador (JR) Salta e marca retorno: salva PC+4 no R31. O endereço destino é relative a PC(JAL) ou a um registro (JALR) Transfere a execução para o sistema operacional num endereço armazenado em um vetor Retorna para o código do usuário de uma exceção. Retorna a execução para o código do usuário. Operações de ponto flutuante em dupla precisão (DP) ou precisão simples (SP) ADDD, ADDF Soma números de DP, SP SUBD, SUBF Subtrai números de DP, SP MULTD, MULTF Multiplica números de DP, SP DIVD, DIVF Divide números de DP, SP CVTF2D, CVTF2I, Instruções de converção: CVTx2y converte do tipo 116
CVTD2F, CVTD2I, CVTI2F, CVTI2D __D, __F ComPort <strong>–</strong> <strong>Compilador</strong> <strong>Portugol</strong> x para o tipo y, onde x e y podem ser I para inteiro, D para precisão dupla e F para simples precisão. Ambos operandos devem estar em registradores FP. Compara números de DP e SP compares: "__" pode ser LT, GT, LE, GE, EQ, NE(menor, maior, menor ou igual, maior ou igual, igual, não igual); Ativa o bit de comparação no registrador de status FP. 117